<!DOCTYPE html>
<html>
<head><meta charset="utf-8" />
<title>ch04-training-models</title>

<script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.1.10/require.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>

<style type="text/css">
    /*!
*
* Twitter Bootstrap
*
*/
/*!
 * Bootstrap v3.3.6 (http://getbootstrap.com)
 * Copyright 2011-2015 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 */
/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
html {
  font-family: sans-serif;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}
body {
  margin: 0;
}
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
  display: block;
}
audio,
canvas,
progress,
video {
  display: inline-block;
  vertical-align: baseline;
}
audio:not([controls]) {
  display: none;
  height: 0;
}
[hidden],
template {
  display: none;
}
a {
  background-color: transparent;
}
a:active,
a:hover {
  outline: 0;
}
abbr[title] {
  border-bottom: 1px dotted;
}
b,
strong {
  font-weight: bold;
}
dfn {
  font-style: italic;
}
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}
mark {
  background: #ff0;
  color: #000;
}
small {
  font-size: 80%;
}
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
sup {
  top: -0.5em;
}
sub {
  bottom: -0.25em;
}
img {
  border: 0;
}
svg:not(:root) {
  overflow: hidden;
}
figure {
  margin: 1em 40px;
}
hr {
  box-sizing: content-box;
  height: 0;
}
pre {
  overflow: auto;
}
code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em;
}
button,
input,
optgroup,
select,
textarea {
  color: inherit;
  font: inherit;
  margin: 0;
}
button {
  overflow: visible;
}
button,
select {
  text-transform: none;
}
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  cursor: pointer;
}
button[disabled],
html input[disabled] {
  cursor: default;
}
button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0;
}
input {
  line-height: normal;
}
input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box;
  padding: 0;
}
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  height: auto;
}
input[type="search"] {
  -webkit-appearance: textfield;
  box-sizing: content-box;
}
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em;
}
legend {
  border: 0;
  padding: 0;
}
textarea {
  overflow: auto;
}
optgroup {
  font-weight: bold;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
}
td,
th {
  padding: 0;
}
/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
@media print {
  *,
  *:before,
  *:after {
    background: transparent !important;
    color: #000 !important;
    box-shadow: none !important;
    text-shadow: none !important;
  }
  a,
  a:visited {
    text-decoration: underline;
  }
  a[href]:after {
    content: " (" attr(href) ")";
  }
  abbr[title]:after {
    content: " (" attr(title) ")";
  }
  a[href^="#"]:after,
  a[href^="javascript:"]:after {
    content: "";
  }
  pre,
  blockquote {
    border: 1px solid #999;
    page-break-inside: avoid;
  }
  thead {
    display: table-header-group;
  }
  tr,
  img {
    page-break-inside: avoid;
  }
  img {
    max-width: 100% !important;
  }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3;
  }
  h2,
  h3 {
    page-break-after: avoid;
  }
  .navbar {
    display: none;
  }
  .btn > .caret,
  .dropup > .btn > .caret {
    border-top-color: #000 !important;
  }
  .label {
    border: 1px solid #000;
  }
  .table {
    border-collapse: collapse !important;
  }
  .table td,
  .table th {
    background-color: #fff !important;
  }
  .table-bordered th,
  .table-bordered td {
    border: 1px solid #ddd !important;
  }
}
@font-face {
  font-family: 'Glyphicons Halflings';
  src: url('../components/bootstrap/fonts/glyphicons-halflings-regular.eot');
  src: url('../components/bootstrap/fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.woff') format('woff'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
}
.glyphicon {
  position: relative;
  top: 1px;
  display: inline-block;
  font-family: 'Glyphicons Halflings';
  font-style: normal;
  font-weight: normal;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.glyphicon-asterisk:before {
  content: "\002a";
}
.glyphicon-plus:before {
  content: "\002b";
}
.glyphicon-euro:before,
.glyphicon-eur:before {
  content: "\20ac";
}
.glyphicon-minus:before {
  content: "\2212";
}
.glyphicon-cloud:before {
  content: "\2601";
}
.glyphicon-envelope:before {
  content: "\2709";
}
.glyphicon-pencil:before {
  content: "\270f";
}
.glyphicon-glass:before {
  content: "\e001";
}
.glyphicon-music:before {
  content: "\e002";
}
.glyphicon-search:before {
  content: "\e003";
}
.glyphicon-heart:before {
  content: "\e005";
}
.glyphicon-star:before {
  content: "\e006";
}
.glyphicon-star-empty:before {
  content: "\e007";
}
.glyphicon-user:before {
  content: "\e008";
}
.glyphicon-film:before {
  content: "\e009";
}
.glyphicon-th-large:before {
  content: "\e010";
}
.glyphicon-th:before {
  content: "\e011";
}
.glyphicon-th-list:before {
  content: "\e012";
}
.glyphicon-ok:before {
  content: "\e013";
}
.glyphicon-remove:before {
  content: "\e014";
}
.glyphicon-zoom-in:before {
  content: "\e015";
}
.glyphicon-zoom-out:before {
  content: "\e016";
}
.glyphicon-off:before {
  content: "\e017";
}
.glyphicon-signal:before {
  content: "\e018";
}
.glyphicon-cog:before {
  content: "\e019";
}
.glyphicon-trash:before {
  content: "\e020";
}
.glyphicon-home:before {
  content: "\e021";
}
.glyphicon-file:before {
  content: "\e022";
}
.glyphicon-time:before {
  content: "\e023";
}
.glyphicon-road:before {
  content: "\e024";
}
.glyphicon-download-alt:before {
  content: "\e025";
}
.glyphicon-download:before {
  content: "\e026";
}
.glyphicon-upload:before {
  content: "\e027";
}
.glyphicon-inbox:before {
  content: "\e028";
}
.glyphicon-play-circle:before {
  content: "\e029";
}
.glyphicon-repeat:before {
  content: "\e030";
}
.glyphicon-refresh:before {
  content: "\e031";
}
.glyphicon-list-alt:before {
  content: "\e032";
}
.glyphicon-lock:before {
  content: "\e033";
}
.glyphicon-flag:before {
  content: "\e034";
}
.glyphicon-headphones:before {
  content: "\e035";
}
.glyphicon-volume-off:before {
  content: "\e036";
}
.glyphicon-volume-down:before {
  content: "\e037";
}
.glyphicon-volume-up:before {
  content: "\e038";
}
.glyphicon-qrcode:before {
  content: "\e039";
}
.glyphicon-barcode:before {
  content: "\e040";
}
.glyphicon-tag:before {
  content: "\e041";
}
.glyphicon-tags:before {
  content: "\e042";
}
.glyphicon-book:before {
  content: "\e043";
}
.glyphicon-bookmark:before {
  content: "\e044";
}
.glyphicon-print:before {
  content: "\e045";
}
.glyphicon-camera:before {
  content: "\e046";
}
.glyphicon-font:before {
  content: "\e047";
}
.glyphicon-bold:before {
  content: "\e048";
}
.glyphicon-italic:before {
  content: "\e049";
}
.glyphicon-text-height:before {
  content: "\e050";
}
.glyphicon-text-width:before {
  content: "\e051";
}
.glyphicon-align-left:before {
  content: "\e052";
}
.glyphicon-align-center:before {
  content: "\e053";
}
.glyphicon-align-right:before {
  content: "\e054";
}
.glyphicon-align-justify:before {
  content: "\e055";
}
.glyphicon-list:before {
  content: "\e056";
}
.glyphicon-indent-left:before {
  content: "\e057";
}
.glyphicon-indent-right:before {
  content: "\e058";
}
.glyphicon-facetime-video:before {
  content: "\e059";
}
.glyphicon-picture:before {
  content: "\e060";
}
.glyphicon-map-marker:before {
  content: "\e062";
}
.glyphicon-adjust:before {
  content: "\e063";
}
.glyphicon-tint:before {
  content: "\e064";
}
.glyphicon-edit:before {
  content: "\e065";
}
.glyphicon-share:before {
  content: "\e066";
}
.glyphicon-check:before {
  content: "\e067";
}
.glyphicon-move:before {
  content: "\e068";
}
.glyphicon-step-backward:before {
  content: "\e069";
}
.glyphicon-fast-backward:before {
  content: "\e070";
}
.glyphicon-backward:before {
  content: "\e071";
}
.glyphicon-play:before {
  content: "\e072";
}
.glyphicon-pause:before {
  content: "\e073";
}
.glyphicon-stop:before {
  content: "\e074";
}
.glyphicon-forward:before {
  content: "\e075";
}
.glyphicon-fast-forward:before {
  content: "\e076";
}
.glyphicon-step-forward:before {
  content: "\e077";
}
.glyphicon-eject:before {
  content: "\e078";
}
.glyphicon-chevron-left:before {
  content: "\e079";
}
.glyphicon-chevron-right:before {
  content: "\e080";
}
.glyphicon-plus-sign:before {
  content: "\e081";
}
.glyphicon-minus-sign:before {
  content: "\e082";
}
.glyphicon-remove-sign:before {
  content: "\e083";
}
.glyphicon-ok-sign:before {
  content: "\e084";
}
.glyphicon-question-sign:before {
  content: "\e085";
}
.glyphicon-info-sign:before {
  content: "\e086";
}
.glyphicon-screenshot:before {
  content: "\e087";
}
.glyphicon-remove-circle:before {
  content: "\e088";
}
.glyphicon-ok-circle:before {
  content: "\e089";
}
.glyphicon-ban-circle:before {
  content: "\e090";
}
.glyphicon-arrow-left:before {
  content: "\e091";
}
.glyphicon-arrow-right:before {
  content: "\e092";
}
.glyphicon-arrow-up:before {
  content: "\e093";
}
.glyphicon-arrow-down:before {
  content: "\e094";
}
.glyphicon-share-alt:before {
  content: "\e095";
}
.glyphicon-resize-full:before {
  content: "\e096";
}
.glyphicon-resize-small:before {
  content: "\e097";
}
.glyphicon-exclamation-sign:before {
  content: "\e101";
}
.glyphicon-gift:before {
  content: "\e102";
}
.glyphicon-leaf:before {
  content: "\e103";
}
.glyphicon-fire:before {
  content: "\e104";
}
.glyphicon-eye-open:before {
  content: "\e105";
}
.glyphicon-eye-close:before {
  content: "\e106";
}
.glyphicon-warning-sign:before {
  content: "\e107";
}
.glyphicon-plane:before {
  content: "\e108";
}
.glyphicon-calendar:before {
  content: "\e109";
}
.glyphicon-random:before {
  content: "\e110";
}
.glyphicon-comment:before {
  content: "\e111";
}
.glyphicon-magnet:before {
  content: "\e112";
}
.glyphicon-chevron-up:before {
  content: "\e113";
}
.glyphicon-chevron-down:before {
  content: "\e114";
}
.glyphicon-retweet:before {
  content: "\e115";
}
.glyphicon-shopping-cart:before {
  content: "\e116";
}
.glyphicon-folder-close:before {
  content: "\e117";
}
.glyphicon-folder-open:before {
  content: "\e118";
}
.glyphicon-resize-vertical:before {
  content: "\e119";
}
.glyphicon-resize-horizontal:before {
  content: "\e120";
}
.glyphicon-hdd:before {
  content: "\e121";
}
.glyphicon-bullhorn:before {
  content: "\e122";
}
.glyphicon-bell:before {
  content: "\e123";
}
.glyphicon-certificate:before {
  content: "\e124";
}
.glyphicon-thumbs-up:before {
  content: "\e125";
}
.glyphicon-thumbs-down:before {
  content: "\e126";
}
.glyphicon-hand-right:before {
  content: "\e127";
}
.glyphicon-hand-left:before {
  content: "\e128";
}
.glyphicon-hand-up:before {
  content: "\e129";
}
.glyphicon-hand-down:before {
  content: "\e130";
}
.glyphicon-circle-arrow-right:before {
  content: "\e131";
}
.glyphicon-circle-arrow-left:before {
  content: "\e132";
}
.glyphicon-circle-arrow-up:before {
  content: "\e133";
}
.glyphicon-circle-arrow-down:before {
  content: "\e134";
}
.glyphicon-globe:before {
  content: "\e135";
}
.glyphicon-wrench:before {
  content: "\e136";
}
.glyphicon-tasks:before {
  content: "\e137";
}
.glyphicon-filter:before {
  content: "\e138";
}
.glyphicon-briefcase:before {
  content: "\e139";
}
.glyphicon-fullscreen:before {
  content: "\e140";
}
.glyphicon-dashboard:before {
  content: "\e141";
}
.glyphicon-paperclip:before {
  content: "\e142";
}
.glyphicon-heart-empty:before {
  content: "\e143";
}
.glyphicon-link:before {
  content: "\e144";
}
.glyphicon-phone:before {
  content: "\e145";
}
.glyphicon-pushpin:before {
  content: "\e146";
}
.glyphicon-usd:before {
  content: "\e148";
}
.glyphicon-gbp:before {
  content: "\e149";
}
.glyphicon-sort:before {
  content: "\e150";
}
.glyphicon-sort-by-alphabet:before {
  content: "\e151";
}
.glyphicon-sort-by-alphabet-alt:before {
  content: "\e152";
}
.glyphicon-sort-by-order:before {
  content: "\e153";
}
.glyphicon-sort-by-order-alt:before {
  content: "\e154";
}
.glyphicon-sort-by-attributes:before {
  content: "\e155";
}
.glyphicon-sort-by-attributes-alt:before {
  content: "\e156";
}
.glyphicon-unchecked:before {
  content: "\e157";
}
.glyphicon-expand:before {
  content: "\e158";
}
.glyphicon-collapse-down:before {
  content: "\e159";
}
.glyphicon-collapse-up:before {
  content: "\e160";
}
.glyphicon-log-in:before {
  content: "\e161";
}
.glyphicon-flash:before {
  content: "\e162";
}
.glyphicon-log-out:before {
  content: "\e163";
}
.glyphicon-new-window:before {
  content: "\e164";
}
.glyphicon-record:before {
  content: "\e165";
}
.glyphicon-save:before {
  content: "\e166";
}
.glyphicon-open:before {
  content: "\e167";
}
.glyphicon-saved:before {
  content: "\e168";
}
.glyphicon-import:before {
  content: "\e169";
}
.glyphicon-export:before {
  content: "\e170";
}
.glyphicon-send:before {
  content: "\e171";
}
.glyphicon-floppy-disk:before {
  content: "\e172";
}
.glyphicon-floppy-saved:before {
  content: "\e173";
}
.glyphicon-floppy-remove:before {
  content: "\e174";
}
.glyphicon-floppy-save:before {
  content: "\e175";
}
.glyphicon-floppy-open:before {
  content: "\e176";
}
.glyphicon-credit-card:before {
  content: "\e177";
}
.glyphicon-transfer:before {
  content: "\e178";
}
.glyphicon-cutlery:before {
  content: "\e179";
}
.glyphicon-header:before {
  content: "\e180";
}
.glyphicon-compressed:before {
  content: "\e181";
}
.glyphicon-earphone:before {
  content: "\e182";
}
.glyphicon-phone-alt:before {
  content: "\e183";
}
.glyphicon-tower:before {
  content: "\e184";
}
.glyphicon-stats:before {
  content: "\e185";
}
.glyphicon-sd-video:before {
  content: "\e186";
}
.glyphicon-hd-video:before {
  content: "\e187";
}
.glyphicon-subtitles:before {
  content: "\e188";
}
.glyphicon-sound-stereo:before {
  content: "\e189";
}
.glyphicon-sound-dolby:before {
  content: "\e190";
}
.glyphicon-sound-5-1:before {
  content: "\e191";
}
.glyphicon-sound-6-1:before {
  content: "\e192";
}
.glyphicon-sound-7-1:before {
  content: "\e193";
}
.glyphicon-copyright-mark:before {
  content: "\e194";
}
.glyphicon-registration-mark:before {
  content: "\e195";
}
.glyphicon-cloud-download:before {
  content: "\e197";
}
.glyphicon-cloud-upload:before {
  content: "\e198";
}
.glyphicon-tree-conifer:before {
  content: "\e199";
}
.glyphicon-tree-deciduous:before {
  content: "\e200";
}
.glyphicon-cd:before {
  content: "\e201";
}
.glyphicon-save-file:before {
  content: "\e202";
}
.glyphicon-open-file:before {
  content: "\e203";
}
.glyphicon-level-up:before {
  content: "\e204";
}
.glyphicon-copy:before {
  content: "\e205";
}
.glyphicon-paste:before {
  content: "\e206";
}
.glyphicon-alert:before {
  content: "\e209";
}
.glyphicon-equalizer:before {
  content: "\e210";
}
.glyphicon-king:before {
  content: "\e211";
}
.glyphicon-queen:before {
  content: "\e212";
}
.glyphicon-pawn:before {
  content: "\e213";
}
.glyphicon-bishop:before {
  content: "\e214";
}
.glyphicon-knight:before {
  content: "\e215";
}
.glyphicon-baby-formula:before {
  content: "\e216";
}
.glyphicon-tent:before {
  content: "\26fa";
}
.glyphicon-blackboard:before {
  content: "\e218";
}
.glyphicon-bed:before {
  content: "\e219";
}
.glyphicon-apple:before {
  content: "\f8ff";
}
.glyphicon-erase:before {
  content: "\e221";
}
.glyphicon-hourglass:before {
  content: "\231b";
}
.glyphicon-lamp:before {
  content: "\e223";
}
.glyphicon-duplicate:before {
  content: "\e224";
}
.glyphicon-piggy-bank:before {
  content: "\e225";
}
.glyphicon-scissors:before {
  content: "\e226";
}
.glyphicon-bitcoin:before {
  content: "\e227";
}
.glyphicon-btc:before {
  content: "\e227";
}
.glyphicon-xbt:before {
  content: "\e227";
}
.glyphicon-yen:before {
  content: "\00a5";
}
.glyphicon-jpy:before {
  content: "\00a5";
}
.glyphicon-ruble:before {
  content: "\20bd";
}
.glyphicon-rub:before {
  content: "\20bd";
}
.glyphicon-scale:before {
  content: "\e230";
}
.glyphicon-ice-lolly:before {
  content: "\e231";
}
.glyphicon-ice-lolly-tasted:before {
  content: "\e232";
}
.glyphicon-education:before {
  content: "\e233";
}
.glyphicon-option-horizontal:before {
  content: "\e234";
}
.glyphicon-option-vertical:before {
  content: "\e235";
}
.glyphicon-menu-hamburger:before {
  content: "\e236";
}
.glyphicon-modal-window:before {
  content: "\e237";
}
.glyphicon-oil:before {
  content: "\e238";
}
.glyphicon-grain:before {
  content: "\e239";
}
.glyphicon-sunglasses:before {
  content: "\e240";
}
.glyphicon-text-size:before {
  content: "\e241";
}
.glyphicon-text-color:before {
  content: "\e242";
}
.glyphicon-text-background:before {
  content: "\e243";
}
.glyphicon-object-align-top:before {
  content: "\e244";
}
.glyphicon-object-align-bottom:before {
  content: "\e245";
}
.glyphicon-object-align-horizontal:before {
  content: "\e246";
}
.glyphicon-object-align-left:before {
  content: "\e247";
}
.glyphicon-object-align-vertical:before {
  content: "\e248";
}
.glyphicon-object-align-right:before {
  content: "\e249";
}
.glyphicon-triangle-right:before {
  content: "\e250";
}
.glyphicon-triangle-left:before {
  content: "\e251";
}
.glyphicon-triangle-bottom:before {
  content: "\e252";
}
.glyphicon-triangle-top:before {
  content: "\e253";
}
.glyphicon-console:before {
  content: "\e254";
}
.glyphicon-superscript:before {
  content: "\e255";
}
.glyphicon-subscript:before {
  content: "\e256";
}
.glyphicon-menu-left:before {
  content: "\e257";
}
.glyphicon-menu-right:before {
  content: "\e258";
}
.glyphicon-menu-down:before {
  content: "\e259";
}
.glyphicon-menu-up:before {
  content: "\e260";
}
* {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
*:before,
*:after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
html {
  font-size: 10px;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
body {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 13px;
  line-height: 1.42857143;
  color: #000;
  background-color: #fff;
}
input,
button,
select,
textarea {
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}
a {
  color: #337ab7;
  text-decoration: none;
}
a:hover,
a:focus {
  color: #23527c;
  text-decoration: underline;
}
a:focus {
  outline: thin dotted;
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
}
figure {
  margin: 0;
}
img {
  vertical-align: middle;
}
.img-responsive,
.thumbnail > img,
.thumbnail a > img,
.carousel-inner > .item > img,
.carousel-inner > .item > a > img {
  display: block;
  max-width: 100%;
  height: auto;
}
.img-rounded {
  border-radius: 3px;
}
.img-thumbnail {
  padding: 4px;
  line-height: 1.42857143;
  background-color: #fff;
  border: 1px solid #ddd;
  border-radius: 2px;
  -webkit-transition: all 0.2s ease-in-out;
  -o-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
  display: inline-block;
  max-width: 100%;
  height: auto;
}
.img-circle {
  border-radius: 50%;
}
hr {
  margin-top: 18px;
  margin-bottom: 18px;
  border: 0;
  border-top: 1px solid #eeeeee;
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}
.sr-only-focusable:active,
.sr-only-focusable:focus {
  position: static;
  width: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  clip: auto;
}
[role="button"] {
  cursor: pointer;
}
h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6 {
  font-family: inherit;
  font-weight: 500;
  line-height: 1.1;
  color: inherit;
}
h1 small,
h2 small,
h3 small,
h4 small,
h5 small,
h6 small,
.h1 small,
.h2 small,
.h3 small,
.h4 small,
.h5 small,
.h6 small,
h1 .small,
h2 .small,
h3 .small,
h4 .small,
h5 .small,
h6 .small,
.h1 .small,
.h2 .small,
.h3 .small,
.h4 .small,
.h5 .small,
.h6 .small {
  font-weight: normal;
  line-height: 1;
  color: #777777;
}
h1,
.h1,
h2,
.h2,
h3,
.h3 {
  margin-top: 18px;
  margin-bottom: 9px;
}
h1 small,
.h1 small,
h2 small,
.h2 small,
h3 small,
.h3 small,
h1 .small,
.h1 .small,
h2 .small,
.h2 .small,
h3 .small,
.h3 .small {
  font-size: 65%;
}
h4,
.h4,
h5,
.h5,
h6,
.h6 {
  margin-top: 9px;
  margin-bottom: 9px;
}
h4 small,
.h4 small,
h5 small,
.h5 small,
h6 small,
.h6 small,
h4 .small,
.h4 .small,
h5 .small,
.h5 .small,
h6 .small,
.h6 .small {
  font-size: 75%;
}
h1,
.h1 {
  font-size: 33px;
}
h2,
.h2 {
  font-size: 27px;
}
h3,
.h3 {
  font-size: 23px;
}
h4,
.h4 {
  font-size: 17px;
}
h5,
.h5 {
  font-size: 13px;
}
h6,
.h6 {
  font-size: 12px;
}
p {
  margin: 0 0 9px;
}
.lead {
  margin-bottom: 18px;
  font-size: 14px;
  font-weight: 300;
  line-height: 1.4;
}
@media (min-width: 768px) {
  .lead {
    font-size: 19.5px;
  }
}
small,
.small {
  font-size: 92%;
}
mark,
.mark {
  background-color: #fcf8e3;
  padding: .2em;
}
.text-left {
  text-align: left;
}
.text-right {
  text-align: right;
}
.text-center {
  text-align: center;
}
.text-justify {
  text-align: justify;
}
.text-nowrap {
  white-space: nowrap;
}
.text-lowercase {
  text-transform: lowercase;
}
.text-uppercase {
  text-transform: uppercase;
}
.text-capitalize {
  text-transform: capitalize;
}
.text-muted {
  color: #777777;
}
.text-primary {
  color: #337ab7;
}
a.text-primary:hover,
a.text-primary:focus {
  color: #286090;
}
.text-success {
  color: #3c763d;
}
a.text-success:hover,
a.text-success:focus {
  color: #2b542c;
}
.text-info {
  color: #31708f;
}
a.text-info:hover,
a.text-info:focus {
  color: #245269;
}
.text-warning {
  color: #8a6d3b;
}
a.text-warning:hover,
a.text-warning:focus {
  color: #66512c;
}
.text-danger {
  color: #a94442;
}
a.text-danger:hover,
a.text-danger:focus {
  color: #843534;
}
.bg-primary {
  color: #fff;
  background-color: #337ab7;
}
a.bg-primary:hover,
a.bg-primary:focus {
  background-color: #286090;
}
.bg-success {
  background-color: #dff0d8;
}
a.bg-success:hover,
a.bg-success:focus {
  background-color: #c1e2b3;
}
.bg-info {
  background-color: #d9edf7;
}
a.bg-info:hover,
a.bg-info:focus {
  background-color: #afd9ee;
}
.bg-warning {
  background-color: #fcf8e3;
}
a.bg-warning:hover,
a.bg-warning:focus {
  background-color: #f7ecb5;
}
.bg-danger {
  background-color: #f2dede;
}
a.bg-danger:hover,
a.bg-danger:focus {
  background-color: #e4b9b9;
}
.page-header {
  padding-bottom: 8px;
  margin: 36px 0 18px;
  border-bottom: 1px solid #eeeeee;
}
ul,
ol {
  margin-top: 0;
  margin-bottom: 9px;
}
ul ul,
ol ul,
ul ol,
ol ol {
  margin-bottom: 0;
}
.list-unstyled {
  padding-left: 0;
  list-style: none;
}
.list-inline {
  padding-left: 0;
  list-style: none;
  margin-left: -5px;
}
.list-inline > li {
  display: inline-block;
  padding-left: 5px;
  padding-right: 5px;
}
dl {
  margin-top: 0;
  margin-bottom: 18px;
}
dt,
dd {
  line-height: 1.42857143;
}
dt {
  font-weight: bold;
}
dd {
  margin-left: 0;
}
@media (min-width: 541px) {
  .dl-horizontal dt {
    float: left;
    width: 160px;
    clear: left;
    text-align: right;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .dl-horizontal dd {
    margin-left: 180px;
  }
}
abbr[title],
abbr[data-original-title] {
  cursor: help;
  border-bottom: 1px dotted #777777;
}
.initialism {
  font-size: 90%;
  text-transform: uppercase;
}
blockquote {
  padding: 9px 18px;
  margin: 0 0 18px;
  font-size: inherit;
  border-left: 5px solid #eeeeee;
}
blockquote p:last-child,
blockquote ul:last-child,
blockquote ol:last-child {
  margin-bottom: 0;
}
blockquote footer,
blockquote small,
blockquote .small {
  display: block;
  font-size: 80%;
  line-height: 1.42857143;
  color: #777777;
}
blockquote footer:before,
blockquote small:before,
blockquote .small:before {
  content: '\2014 \00A0';
}
.blockquote-reverse,
blockquote.pull-right {
  padding-right: 15px;
  padding-left: 0;
  border-right: 5px solid #eeeeee;
  border-left: 0;
  text-align: right;
}
.blockquote-reverse footer:before,
blockquote.pull-right footer:before,
.blockquote-reverse small:before,
blockquote.pull-right small:before,
.blockquote-reverse .small:before,
blockquote.pull-right .small:before {
  content: '';
}
.blockquote-reverse footer:after,
blockquote.pull-right footer:after,
.blockquote-reverse small:after,
blockquote.pull-right small:after,
.blockquote-reverse .small:after,
blockquote.pull-right .small:after {
  content: '\00A0 \2014';
}
address {
  margin-bottom: 18px;
  font-style: normal;
  line-height: 1.42857143;
}
code,
kbd,
pre,
samp {
  font-family: monospace;
}
code {
  padding: 2px 4px;
  font-size: 90%;
  color: #c7254e;
  background-color: #f9f2f4;
  border-radius: 2px;
}
kbd {
  padding: 2px 4px;
  font-size: 90%;
  color: #888;
  background-color: transparent;
  border-radius: 1px;
  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
}
kbd kbd {
  padding: 0;
  font-size: 100%;
  font-weight: bold;
  box-shadow: none;
}
pre {
  display: block;
  padding: 8.5px;
  margin: 0 0 9px;
  font-size: 12px;
  line-height: 1.42857143;
  word-break: break-all;
  word-wrap: break-word;
  color: #333333;
  background-color: #f5f5f5;
  border: 1px solid #ccc;
  border-radius: 2px;
}
pre code {
  padding: 0;
  font-size: inherit;
  color: inherit;
  white-space: pre-wrap;
  background-color: transparent;
  border-radius: 0;
}
.pre-scrollable {
  max-height: 340px;
  overflow-y: scroll;
}
.container {
  margin-right: auto;
  margin-left: auto;
  padding-left: 0px;
  padding-right: 0px;
}
@media (min-width: 768px) {
  .container {
    width: 768px;
  }
}
@media (min-width: 992px) {
  .container {
    width: 940px;
  }
}
@media (min-width: 1200px) {
  .container {
    width: 1140px;
  }
}
.container-fluid {
  margin-right: auto;
  margin-left: auto;
  padding-left: 0px;
  padding-right: 0px;
}
.row {
  margin-left: 0px;
  margin-right: 0px;
}
.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
  position: relative;
  min-height: 1px;
  padding-left: 0px;
  padding-right: 0px;
}
.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
  float: left;
}
.col-xs-12 {
  width: 100%;
}
.col-xs-11 {
  width: 91.66666667%;
}
.col-xs-10 {
  width: 83.33333333%;
}
.col-xs-9 {
  width: 75%;
}
.col-xs-8 {
  width: 66.66666667%;
}
.col-xs-7 {
  width: 58.33333333%;
}
.col-xs-6 {
  width: 50%;
}
.col-xs-5 {
  width: 41.66666667%;
}
.col-xs-4 {
  width: 33.33333333%;
}
.col-xs-3 {
  width: 25%;
}
.col-xs-2 {
  width: 16.66666667%;
}
.col-xs-1 {
  width: 8.33333333%;
}
.col-xs-pull-12 {
  right: 100%;
}
.col-xs-pull-11 {
  right: 91.66666667%;
}
.col-xs-pull-10 {
  right: 83.33333333%;
}
.col-xs-pull-9 {
  right: 75%;
}
.col-xs-pull-8 {
  right: 66.66666667%;
}
.col-xs-pull-7 {
  right: 58.33333333%;
}
.col-xs-pull-6 {
  right: 50%;
}
.col-xs-pull-5 {
  right: 41.66666667%;
}
.col-xs-pull-4 {
  right: 33.33333333%;
}
.col-xs-pull-3 {
  right: 25%;
}
.col-xs-pull-2 {
  right: 16.66666667%;
}
.col-xs-pull-1 {
  right: 8.33333333%;
}
.col-xs-pull-0 {
  right: auto;
}
.col-xs-push-12 {
  left: 100%;
}
.col-xs-push-11 {
  left: 91.66666667%;
}
.col-xs-push-10 {
  left: 83.33333333%;
}
.col-xs-push-9 {
  left: 75%;
}
.col-xs-push-8 {
  left: 66.66666667%;
}
.col-xs-push-7 {
  left: 58.33333333%;
}
.col-xs-push-6 {
  left: 50%;
}
.col-xs-push-5 {
  left: 41.66666667%;
}
.col-xs-push-4 {
  left: 33.33333333%;
}
.col-xs-push-3 {
  left: 25%;
}
.col-xs-push-2 {
  left: 16.66666667%;
}
.col-xs-push-1 {
  left: 8.33333333%;
}
.col-xs-push-0 {
  left: auto;
}
.col-xs-offset-12 {
  margin-left: 100%;
}
.col-xs-offset-11 {
  margin-left: 91.66666667%;
}
.col-xs-offset-10 {
  margin-left: 83.33333333%;
}
.col-xs-offset-9 {
  margin-left: 75%;
}
.col-xs-offset-8 {
  margin-left: 66.66666667%;
}
.col-xs-offset-7 {
  margin-left: 58.33333333%;
}
.col-xs-offset-6 {
  margin-left: 50%;
}
.col-xs-offset-5 {
  margin-left: 41.66666667%;
}
.col-xs-offset-4 {
  margin-left: 33.33333333%;
}
.col-xs-offset-3 {
  margin-left: 25%;
}
.col-xs-offset-2 {
  margin-left: 16.66666667%;
}
.col-xs-offset-1 {
  margin-left: 8.33333333%;
}
.col-xs-offset-0 {
  margin-left: 0%;
}
@media (min-width: 768px) {
  .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
    float: left;
  }
  .col-sm-12 {
    width: 100%;
  }
  .col-sm-11 {
    width: 91.66666667%;
  }
  .col-sm-10 {
    width: 83.33333333%;
  }
  .col-sm-9 {
    width: 75%;
  }
  .col-sm-8 {
    width: 66.66666667%;
  }
  .col-sm-7 {
    width: 58.33333333%;
  }
  .col-sm-6 {
    width: 50%;
  }
  .col-sm-5 {
    width: 41.66666667%;
  }
  .col-sm-4 {
    width: 33.33333333%;
  }
  .col-sm-3 {
    width: 25%;
  }
  .col-sm-2 {
    width: 16.66666667%;
  }
  .col-sm-1 {
    width: 8.33333333%;
  }
  .col-sm-pull-12 {
    right: 100%;
  }
  .col-sm-pull-11 {
    right: 91.66666667%;
  }
  .col-sm-pull-10 {
    right: 83.33333333%;
  }
  .col-sm-pull-9 {
    right: 75%;
  }
  .col-sm-pull-8 {
    right: 66.66666667%;
  }
  .col-sm-pull-7 {
    right: 58.33333333%;
  }
  .col-sm-pull-6 {
    right: 50%;
  }
  .col-sm-pull-5 {
    right: 41.66666667%;
  }
  .col-sm-pull-4 {
    right: 33.33333333%;
  }
  .col-sm-pull-3 {
    right: 25%;
  }
  .col-sm-pull-2 {
    right: 16.66666667%;
  }
  .col-sm-pull-1 {
    right: 8.33333333%;
  }
  .col-sm-pull-0 {
    right: auto;
  }
  .col-sm-push-12 {
    left: 100%;
  }
  .col-sm-push-11 {
    left: 91.66666667%;
  }
  .col-sm-push-10 {
    left: 83.33333333%;
  }
  .col-sm-push-9 {
    left: 75%;
  }
  .col-sm-push-8 {
    left: 66.66666667%;
  }
  .col-sm-push-7 {
    left: 58.33333333%;
  }
  .col-sm-push-6 {
    left: 50%;
  }
  .col-sm-push-5 {
    left: 41.66666667%;
  }
  .col-sm-push-4 {
    left: 33.33333333%;
  }
  .col-sm-push-3 {
    left: 25%;
  }
  .col-sm-push-2 {
    left: 16.66666667%;
  }
  .col-sm-push-1 {
    left: 8.33333333%;
  }
  .col-sm-push-0 {
    left: auto;
  }
  .col-sm-offset-12 {
    margin-left: 100%;
  }
  .col-sm-offset-11 {
    margin-left: 91.66666667%;
  }
  .col-sm-offset-10 {
    margin-left: 83.33333333%;
  }
  .col-sm-offset-9 {
    margin-left: 75%;
  }
  .col-sm-offset-8 {
    margin-left: 66.66666667%;
  }
  .col-sm-offset-7 {
    margin-left: 58.33333333%;
  }
  .col-sm-offset-6 {
    margin-left: 50%;
  }
  .col-sm-offset-5 {
    margin-left: 41.66666667%;
  }
  .col-sm-offset-4 {
    margin-left: 33.33333333%;
  }
  .col-sm-offset-3 {
    margin-left: 25%;
  }
  .col-sm-offset-2 {
    margin-left: 16.66666667%;
  }
  .col-sm-offset-1 {
    margin-left: 8.33333333%;
  }
  .col-sm-offset-0 {
    margin-left: 0%;
  }
}
@media (min-width: 992px) {
  .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {
    float: left;
  }
  .col-md-12 {
    width: 100%;
  }
  .col-md-11 {
    width: 91.66666667%;
  }
  .col-md-10 {
    width: 83.33333333%;
  }
  .col-md-9 {
    width: 75%;
  }
  .col-md-8 {
    width: 66.66666667%;
  }
  .col-md-7 {
    width: 58.33333333%;
  }
  .col-md-6 {
    width: 50%;
  }
  .col-md-5 {
    width: 41.66666667%;
  }
  .col-md-4 {
    width: 33.33333333%;
  }
  .col-md-3 {
    width: 25%;
  }
  .col-md-2 {
    width: 16.66666667%;
  }
  .col-md-1 {
    width: 8.33333333%;
  }
  .col-md-pull-12 {
    right: 100%;
  }
  .col-md-pull-11 {
    right: 91.66666667%;
  }
  .col-md-pull-10 {
    right: 83.33333333%;
  }
  .col-md-pull-9 {
    right: 75%;
  }
  .col-md-pull-8 {
    right: 66.66666667%;
  }
  .col-md-pull-7 {
    right: 58.33333333%;
  }
  .col-md-pull-6 {
    right: 50%;
  }
  .col-md-pull-5 {
    right: 41.66666667%;
  }
  .col-md-pull-4 {
    right: 33.33333333%;
  }
  .col-md-pull-3 {
    right: 25%;
  }
  .col-md-pull-2 {
    right: 16.66666667%;
  }
  .col-md-pull-1 {
    right: 8.33333333%;
  }
  .col-md-pull-0 {
    right: auto;
  }
  .col-md-push-12 {
    left: 100%;
  }
  .col-md-push-11 {
    left: 91.66666667%;
  }
  .col-md-push-10 {
    left: 83.33333333%;
  }
  .col-md-push-9 {
    left: 75%;
  }
  .col-md-push-8 {
    left: 66.66666667%;
  }
  .col-md-push-7 {
    left: 58.33333333%;
  }
  .col-md-push-6 {
    left: 50%;
  }
  .col-md-push-5 {
    left: 41.66666667%;
  }
  .col-md-push-4 {
    left: 33.33333333%;
  }
  .col-md-push-3 {
    left: 25%;
  }
  .col-md-push-2 {
    left: 16.66666667%;
  }
  .col-md-push-1 {
    left: 8.33333333%;
  }
  .col-md-push-0 {
    left: auto;
  }
  .col-md-offset-12 {
    margin-left: 100%;
  }
  .col-md-offset-11 {
    margin-left: 91.66666667%;
  }
  .col-md-offset-10 {
    margin-left: 83.33333333%;
  }
  .col-md-offset-9 {
    margin-left: 75%;
  }
  .col-md-offset-8 {
    margin-left: 66.66666667%;
  }
  .col-md-offset-7 {
    margin-left: 58.33333333%;
  }
  .col-md-offset-6 {
    margin-left: 50%;
  }
  .col-md-offset-5 {
    margin-left: 41.66666667%;
  }
  .col-md-offset-4 {
    margin-left: 33.33333333%;
  }
  .col-md-offset-3 {
    margin-left: 25%;
  }
  .col-md-offset-2 {
    margin-left: 16.66666667%;
  }
  .col-md-offset-1 {
    margin-left: 8.33333333%;
  }
  .col-md-offset-0 {
    margin-left: 0%;
  }
}
@media (min-width: 1200px) {
  .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
    float: left;
  }
  .col-lg-12 {
    width: 100%;
  }
  .col-lg-11 {
    width: 91.66666667%;
  }
  .col-lg-10 {
    width: 83.33333333%;
  }
  .col-lg-9 {
    width: 75%;
  }
  .col-lg-8 {
    width: 66.66666667%;
  }
  .col-lg-7 {
    width: 58.33333333%;
  }
  .col-lg-6 {
    width: 50%;
  }
  .col-lg-5 {
    width: 41.66666667%;
  }
  .col-lg-4 {
    width: 33.33333333%;
  }
  .col-lg-3 {
    width: 25%;
  }
  .col-lg-2 {
    width: 16.66666667%;
  }
  .col-lg-1 {
    width: 8.33333333%;
  }
  .col-lg-pull-12 {
    right: 100%;
  }
  .col-lg-pull-11 {
    right: 91.66666667%;
  }
  .col-lg-pull-10 {
    right: 83.33333333%;
  }
  .col-lg-pull-9 {
    right: 75%;
  }
  .col-lg-pull-8 {
    right: 66.66666667%;
  }
  .col-lg-pull-7 {
    right: 58.33333333%;
  }
  .col-lg-pull-6 {
    right: 50%;
  }
  .col-lg-pull-5 {
    right: 41.66666667%;
  }
  .col-lg-pull-4 {
    right: 33.33333333%;
  }
  .col-lg-pull-3 {
    right: 25%;
  }
  .col-lg-pull-2 {
    right: 16.66666667%;
  }
  .col-lg-pull-1 {
    right: 8.33333333%;
  }
  .col-lg-pull-0 {
    right: auto;
  }
  .col-lg-push-12 {
    left: 100%;
  }
  .col-lg-push-11 {
    left: 91.66666667%;
  }
  .col-lg-push-10 {
    left: 83.33333333%;
  }
  .col-lg-push-9 {
    left: 75%;
  }
  .col-lg-push-8 {
    left: 66.66666667%;
  }
  .col-lg-push-7 {
    left: 58.33333333%;
  }
  .col-lg-push-6 {
    left: 50%;
  }
  .col-lg-push-5 {
    left: 41.66666667%;
  }
  .col-lg-push-4 {
    left: 33.33333333%;
  }
  .col-lg-push-3 {
    left: 25%;
  }
  .col-lg-push-2 {
    left: 16.66666667%;
  }
  .col-lg-push-1 {
    left: 8.33333333%;
  }
  .col-lg-push-0 {
    left: auto;
  }
  .col-lg-offset-12 {
    margin-left: 100%;
  }
  .col-lg-offset-11 {
    margin-left: 91.66666667%;
  }
  .col-lg-offset-10 {
    margin-left: 83.33333333%;
  }
  .col-lg-offset-9 {
    margin-left: 75%;
  }
  .col-lg-offset-8 {
    margin-left: 66.66666667%;
  }
  .col-lg-offset-7 {
    margin-left: 58.33333333%;
  }
  .col-lg-offset-6 {
    margin-left: 50%;
  }
  .col-lg-offset-5 {
    margin-left: 41.66666667%;
  }
  .col-lg-offset-4 {
    margin-left: 33.33333333%;
  }
  .col-lg-offset-3 {
    margin-left: 25%;
  }
  .col-lg-offset-2 {
    margin-left: 16.66666667%;
  }
  .col-lg-offset-1 {
    margin-left: 8.33333333%;
  }
  .col-lg-offset-0 {
    margin-left: 0%;
  }
}
table {
  background-color: transparent;
}
caption {
  padding-top: 8px;
  padding-bottom: 8px;
  color: #777777;
  text-align: left;
}
th {
  text-align: left;
}
.table {
  width: 100%;
  max-width: 100%;
  margin-bottom: 18px;
}
.table > thead > tr > th,
.table > tbody > tr > th,
.table > tfoot > tr > th,
.table > thead > tr > td,
.table > tbody > tr > td,
.table > tfoot > tr > td {
  padding: 8px;
  line-height: 1.42857143;
  vertical-align: top;
  border-top: 1px solid #ddd;
}
.table > thead > tr > th {
  vertical-align: bottom;
  border-bottom: 2px solid #ddd;
}
.table > caption + thead > tr:first-child > th,
.table > colgroup + thead > tr:first-child > th,
.table > thead:first-child > tr:first-child > th,
.table > caption + thead > tr:first-child > td,
.table > colgroup + thead > tr:first-child > td,
.table > thead:first-child > tr:first-child > td {
  border-top: 0;
}
.table > tbody + tbody {
  border-top: 2px solid #ddd;
}
.table .table {
  background-color: #fff;
}
.table-condensed > thead > tr > th,
.table-condensed > tbody > tr > th,
.table-condensed > tfoot > tr > th,
.table-condensed > thead > tr > td,
.table-condensed > tbody > tr > td,
.table-condensed > tfoot > tr > td {
  padding: 5px;
}
.table-bordered {
  border: 1px solid #ddd;
}
.table-bordered > thead > tr > th,
.table-bordered > tbody > tr > th,
.table-bordered > tfoot > tr > th,
.table-bordered > thead > tr > td,
.table-bordered > tbody > tr > td,
.table-bordered > tfoot > tr > td {
  border: 1px solid #ddd;
}
.table-bordered > thead > tr > th,
.table-bordered > thead > tr > td {
  border-bottom-width: 2px;
}
.table-striped > tbody > tr:nth-of-type(odd) {
  background-color: #f9f9f9;
}
.table-hover > tbody > tr:hover {
  background-color: #f5f5f5;
}
table col[class*="col-"] {
  position: static;
  float: none;
  display: table-column;
}
table td[class*="col-"],
table th[class*="col-"] {
  position: static;
  float: none;
  display: table-cell;
}
.table > thead > tr > td.active,
.table > tbody > tr > td.active,
.table > tfoot > tr > td.active,
.table > thead > tr > th.active,
.table > tbody > tr > th.active,
.table > tfoot > tr > th.active,
.table > thead > tr.active > td,
.table > tbody > tr.active > td,
.table > tfoot > tr.active > td,
.table > thead > tr.active > th,
.table > tbody > tr.active > th,
.table > tfoot > tr.active > th {
  background-color: #f5f5f5;
}
.table-hover > tbody > tr > td.active:hover,
.table-hover > tbody > tr > th.active:hover,
.table-hover > tbody > tr.active:hover > td,
.table-hover > tbody > tr:hover > .active,
.table-hover > tbody > tr.active:hover > th {
  background-color: #e8e8e8;
}
.table > thead > tr > td.success,
.table > tbody > tr > td.success,
.table > tfoot > tr > td.success,
.table > thead > tr > th.success,
.table > tbody > tr > th.success,
.table > tfoot > tr > th.success,
.table > thead > tr.success > td,
.table > tbody > tr.success > td,
.table > tfoot > tr.success > td,
.table > thead > tr.success > th,
.table > tbody > tr.success > th,
.table > tfoot > tr.success > th {
  background-color: #dff0d8;
}
.table-hover > tbody > tr > td.success:hover,
.table-hover > tbody > tr > th.success:hover,
.table-hover > tbody > tr.success:hover > td,
.table-hover > tbody > tr:hover > .success,
.table-hover > tbody > tr.success:hover > th {
  background-color: #d0e9c6;
}
.table > thead > tr > td.info,
.table > tbody > tr > td.info,
.table > tfoot > tr > td.info,
.table > thead > tr > th.info,
.table > tbody > tr > th.info,
.table > tfoot > tr > th.info,
.table > thead > tr.info > td,
.table > tbody > tr.info > td,
.table > tfoot > tr.info > td,
.table > thead > tr.info > th,
.table > tbody > tr.info > th,
.table > tfoot > tr.info > th {
  background-color: #d9edf7;
}
.table-hover > tbody > tr > td.info:hover,
.table-hover > tbody > tr > th.info:hover,
.table-hover > tbody > tr.info:hover > td,
.table-hover > tbody > tr:hover > .info,
.table-hover > tbody > tr.info:hover > th {
  background-color: #c4e3f3;
}
.table > thead > tr > td.warning,
.table > tbody > tr > td.warning,
.table > tfoot > tr > td.warning,
.table > thead > tr > th.warning,
.table > tbody > tr > th.warning,
.table > tfoot > tr > th.warning,
.table > thead > tr.warning > td,
.table > tbody > tr.warning > td,
.table > tfoot > tr.warning > td,
.table > thead > tr.warning > th,
.table > tbody > tr.warning > th,
.table > tfoot > tr.warning > th {
  background-color: #fcf8e3;
}
.table-hover > tbody > tr > td.warning:hover,
.table-hover > tbody > tr > th.warning:hover,
.table-hover > tbody > tr.warning:hover > td,
.table-hover > tbody > tr:hover > .warning,
.table-hover > tbody > tr.warning:hover > th {
  background-color: #faf2cc;
}
.table > thead > tr > td.danger,
.table > tbody > tr > td.danger,
.table > tfoot > tr > td.danger,
.table > thead > tr > th.danger,
.table > tbody > tr > th.danger,
.table > tfoot > tr > th.danger,
.table > thead > tr.danger > td,
.table > tbody > tr.danger > td,
.table > tfoot > tr.danger > td,
.table > thead > tr.danger > th,
.table > tbody > tr.danger > th,
.table > tfoot > tr.danger > th {
  background-color: #f2dede;
}
.table-hover > tbody > tr > td.danger:hover,
.table-hover > tbody > tr > th.danger:hover,
.table-hover > tbody > tr.danger:hover > td,
.table-hover > tbody > tr:hover > .danger,
.table-hover > tbody > tr.danger:hover > th {
  background-color: #ebcccc;
}
.table-responsive {
  overflow-x: auto;
  min-height: 0.01%;
}
@media screen and (max-width: 767px) {
  .table-responsive {
    width: 100%;
    margin-bottom: 13.5px;
    overflow-y: hidden;
    -ms-overflow-style: -ms-autohiding-scrollbar;
    border: 1px solid #ddd;
  }
  .table-responsive > .table {
    margin-bottom: 0;
  }
  .table-responsive > .table > thead > tr > th,
  .table-responsive > .table > tbody > tr > th,
  .table-responsive > .table > tfoot > tr > th,
  .table-responsive > .table > thead > tr > td,
  .table-responsive > .table > tbody > tr > td,
  .table-responsive > .table > tfoot > tr > td {
    white-space: nowrap;
  }
  .table-responsive > .table-bordered {
    border: 0;
  }
  .table-responsive > .table-bordered > thead > tr > th:first-child,
  .table-responsive > .table-bordered > tbody > tr > th:first-child,
  .table-responsive > .table-bordered > tfoot > tr > th:first-child,
  .table-responsive > .table-bordered > thead > tr > td:first-child,
  .table-responsive > .table-bordered > tbody > tr > td:first-child,
  .table-responsive > .table-bordered > tfoot > tr > td:first-child {
    border-left: 0;
  }
  .table-responsive > .table-bordered > thead > tr > th:last-child,
  .table-responsive > .table-bordered > tbody > tr > th:last-child,
  .table-responsive > .table-bordered > tfoot > tr > th:last-child,
  .table-responsive > .table-bordered > thead > tr > td:last-child,
  .table-responsive > .table-bordered > tbody > tr > td:last-child,
  .table-responsive > .table-bordered > tfoot > tr > td:last-child {
    border-right: 0;
  }
  .table-responsive > .table-bordered > tbody > tr:last-child > th,
  .table-responsive > .table-bordered > tfoot > tr:last-child > th,
  .table-responsive > .table-bordered > tbody > tr:last-child > td,
  .table-responsive > .table-bordered > tfoot > tr:last-child > td {
    border-bottom: 0;
  }
}
fieldset {
  padding: 0;
  margin: 0;
  border: 0;
  min-width: 0;
}
legend {
  display: block;
  width: 100%;
  padding: 0;
  margin-bottom: 18px;
  font-size: 19.5px;
  line-height: inherit;
  color: #333333;
  border: 0;
  border-bottom: 1px solid #e5e5e5;
}
label {
  display: inline-block;
  max-width: 100%;
  margin-bottom: 5px;
  font-weight: bold;
}
input[type="search"] {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
input[type="radio"],
input[type="checkbox"] {
  margin: 4px 0 0;
  margin-top: 1px \9;
  line-height: normal;
}
input[type="file"] {
  display: block;
}
input[type="range"] {
  display: block;
  width: 100%;
}
select[multiple],
select[size] {
  height: auto;
}
input[type="file"]:focus,
input[type="radio"]:focus,
input[type="checkbox"]:focus {
  outline: thin dotted;
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
}
output {
  display: block;
  padding-top: 7px;
  font-size: 13px;
  line-height: 1.42857143;
  color: #555555;
}
.form-control {
  display: block;
  width: 100%;
  height: 32px;
  padding: 6px 12px;
  font-size: 13px;
  line-height: 1.42857143;
  color: #555555;
  background-color: #fff;
  background-image: none;
  border: 1px solid #ccc;
  border-radius: 2px;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
}
.form-control:focus {
  border-color: #66afe9;
  outline: 0;
  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
  box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
}
.form-control::-moz-placeholder {
  color: #999;
  opacity: 1;
}
.form-control:-ms-input-placeholder {
  color: #999;
}
.form-control::-webkit-input-placeholder {
  color: #999;
}
.form-control::-ms-expand {
  border: 0;
  background-color: transparent;
}
.form-control[disabled],
.form-control[readonly],
fieldset[disabled] .form-control {
  background-color: #eeeeee;
  opacity: 1;
}
.form-control[disabled],
fieldset[disabled] .form-control {
  cursor: not-allowed;
}
textarea.form-control {
  height: auto;
}
input[type="search"] {
  -webkit-appearance: none;
}
@media screen and (-webkit-min-device-pixel-ratio: 0) {
  input[type="date"].form-control,
  input[type="time"].form-control,
  input[type="datetime-local"].form-control,
  input[type="month"].form-control {
    line-height: 32px;
  }
  input[type="date"].input-sm,
  input[type="time"].input-sm,
  input[type="datetime-local"].input-sm,
  input[type="month"].input-sm,
  .input-group-sm input[type="date"],
  .input-group-sm input[type="time"],
  .input-group-sm input[type="datetime-local"],
  .input-group-sm input[type="month"] {
    line-height: 30px;
  }
  input[type="date"].input-lg,
  input[type="time"].input-lg,
  input[type="datetime-local"].input-lg,
  input[type="month"].input-lg,
  .input-group-lg input[type="date"],
  .input-group-lg input[type="time"],
  .input-group-lg input[type="datetime-local"],
  .input-group-lg input[type="month"] {
    line-height: 45px;
  }
}
.form-group {
  margin-bottom: 15px;
}
.radio,
.checkbox {
  position: relative;
  display: block;
  margin-top: 10px;
  margin-bottom: 10px;
}
.radio label,
.checkbox label {
  min-height: 18px;
  padding-left: 20px;
  margin-bottom: 0;
  font-weight: normal;
  cursor: pointer;
}
.radio input[type="radio"],
.radio-inline input[type="radio"],
.checkbox input[type="checkbox"],
.checkbox-inline input[type="checkbox"] {
  position: absolute;
  margin-left: -20px;
  margin-top: 4px \9;
}
.radio + .radio,
.checkbox + .checkbox {
  margin-top: -5px;
}
.radio-inline,
.checkbox-inline {
  position: relative;
  display: inline-block;
  padding-left: 20px;
  margin-bottom: 0;
  vertical-align: middle;
  font-weight: normal;
  cursor: pointer;
}
.radio-inline + .radio-inline,
.checkbox-inline + .checkbox-inline {
  margin-top: 0;
  margin-left: 10px;
}
input[type="radio"][disabled],
input[type="checkbox"][disabled],
input[type="radio"].disabled,
input[type="checkbox"].disabled,
fieldset[disabled] input[type="radio"],
fieldset[disabled] input[type="checkbox"] {
  cursor: not-allowed;
}
.radio-inline.disabled,
.checkbox-inline.disabled,
fieldset[disabled] .radio-inline,
fieldset[disabled] .checkbox-inline {
  cursor: not-allowed;
}
.radio.disabled label,
.checkbox.disabled label,
fieldset[disabled] .radio label,
fieldset[disabled] .checkbox label {
  cursor: not-allowed;
}
.form-control-static {
  padding-top: 7px;
  padding-bottom: 7px;
  margin-bottom: 0;
  min-height: 31px;
}
.form-control-static.input-lg,
.form-control-static.input-sm {
  padding-left: 0;
  padding-right: 0;
}
.input-sm {
  height: 30px;
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 1px;
}
select.input-sm {
  height: 30px;
  line-height: 30px;
}
textarea.input-sm,
select[multiple].input-sm {
  height: auto;
}
.form-group-sm .form-control {
  height: 30px;
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 1px;
}
.form-group-sm select.form-control {
  height: 30px;
  line-height: 30px;
}
.form-group-sm textarea.form-control,
.form-group-sm select[multiple].form-control {
  height: auto;
}
.form-group-sm .form-control-static {
  height: 30px;
  min-height: 30px;
  padding: 6px 10px;
  font-size: 12px;
  line-height: 1.5;
}
.input-lg {
  height: 45px;
  padding: 10px 16px;
  font-size: 17px;
  line-height: 1.3333333;
  border-radius: 3px;
}
select.input-lg {
  height: 45px;
  line-height: 45px;
}
textarea.input-lg,
select[multiple].input-lg {
  height: auto;
}
.form-group-lg .form-control {
  height: 45px;
  padding: 10px 16px;
  font-size: 17px;
  line-height: 1.3333333;
  border-radius: 3px;
}
.form-group-lg select.form-control {
  height: 45px;
  line-height: 45px;
}
.form-group-lg textarea.form-control,
.form-group-lg select[multiple].form-control {
  height: auto;
}
.form-group-lg .form-control-static {
  height: 45px;
  min-height: 35px;
  padding: 11px 16px;
  font-size: 17px;
  line-height: 1.3333333;
}
.has-feedback {
  position: relative;
}
.has-feedback .form-control {
  padding-right: 40px;
}
.form-control-feedback {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 2;
  display: block;
  width: 32px;
  height: 32px;
  line-height: 32px;
  text-align: center;
  pointer-events: none;
}
.input-lg + .form-control-feedback,
.input-group-lg + .form-control-feedback,
.form-group-lg .form-control + .form-control-feedback {
  width: 45px;
  height: 45px;
  line-height: 45px;
}
.input-sm + .form-control-feedback,
.input-group-sm + .form-control-feedback,
.form-group-sm .form-control + .form-control-feedback {
  width: 30px;
  height: 30px;
  line-height: 30px;
}
.has-success .help-block,
.has-success .control-label,
.has-success .radio,
.has-success .checkbox,
.has-success .radio-inline,
.has-success .checkbox-inline,
.has-success.radio label,
.has-success.checkbox label,
.has-success.radio-inline label,
.has-success.checkbox-inline label {
  color: #3c763d;
}
.has-success .form-control {
  border-color: #3c763d;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}
.has-success .form-control:focus {
  border-color: #2b542c;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
}
.has-success .input-group-addon {
  color: #3c763d;
  border-color: #3c763d;
  background-color: #dff0d8;
}
.has-success .form-control-feedback {
  color: #3c763d;
}
.has-warning .help-block,
.has-warning .control-label,
.has-warning .radio,
.has-warning .checkbox,
.has-warning .radio-inline,
.has-warning .checkbox-inline,
.has-warning.radio label,
.has-warning.checkbox label,
.has-warning.radio-inline label,
.has-warning.checkbox-inline label {
  color: #8a6d3b;
}
.has-warning .form-control {
  border-color: #8a6d3b;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}
.has-warning .form-control:focus {
  border-color: #66512c;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
}
.has-warning .input-group-addon {
  color: #8a6d3b;
  border-color: #8a6d3b;
  background-color: #fcf8e3;
}
.has-warning .form-control-feedback {
  color: #8a6d3b;
}
.has-error .help-block,
.has-error .control-label,
.has-error .radio,
.has-error .checkbox,
.has-error .radio-inline,
.has-error .checkbox-inline,
.has-error.radio label,
.has-error.checkbox label,
.has-error.radio-inline label,
.has-error.checkbox-inline label {
  color: #a94442;
}
.has-error .form-control {
  border-color: #a94442;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}
.has-error .form-control:focus {
  border-color: #843534;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
}
.has-error .input-group-addon {
  color: #a94442;
  border-color: #a94442;
  background-color: #f2dede;
}
.has-error .form-control-feedback {
  color: #a94442;
}
.has-feedback label ~ .form-control-feedback {
  top: 23px;
}
.has-feedback label.sr-only ~ .form-control-feedback {
  top: 0;
}
.help-block {
  display: block;
  margin-top: 5px;
  margin-bottom: 10px;
  color: #404040;
}
@media (min-width: 768px) {
  .form-inline .form-group {
    display: inline-block;
    margin-bottom: 0;
    vertical-align: middle;
  }
  .form-inline .form-control {
    display: inline-block;
    width: auto;
    vertical-align: middle;
  }
  .form-inline .form-control-static {
    display: inline-block;
  }
  .form-inline .input-group {
    display: inline-table;
    vertical-align: middle;
  }
  .form-inline .input-group .input-group-addon,
  .form-inline .input-group .input-group-btn,
  .form-inline .input-group .form-control {
    width: auto;
  }
  .form-inline .input-group > .form-control {
    width: 100%;
  }
  .form-inline .control-label {
    margin-bottom: 0;
    vertical-align: middle;
  }
  .form-inline .radio,
  .form-inline .checkbox {
    display: inline-block;
    margin-top: 0;
    margin-bottom: 0;
    vertical-align: middle;
  }
  .form-inline .radio label,
  .form-inline .checkbox label {
    padding-left: 0;
  }
  .form-inline .radio input[type="radio"],
  .form-inline .checkbox input[type="checkbox"] {
    position: relative;
    margin-left: 0;
  }
  .form-inline .has-feedback .form-control-feedback {
    top: 0;
  }
}
.form-horizontal .radio,
.form-horizontal .checkbox,
.form-horizontal .radio-inline,
.form-horizontal .checkbox-inline {
  margin-top: 0;
  margin-bottom: 0;
  padding-top: 7px;
}
.form-horizontal .radio,
.form-horizontal .checkbox {
  min-height: 25px;
}
.form-horizontal .form-group {
  margin-left: 0px;
  margin-right: 0px;
}
@media (min-width: 768px) {
  .form-horizontal .control-label {
    text-align: right;
    margin-bottom: 0;
    padding-top: 7px;
  }
}
.form-horizontal .has-feedback .form-control-feedback {
  right: 0px;
}
@media (min-width: 768px) {
  .form-horizontal .form-group-lg .control-label {
    padding-top: 11px;
    font-size: 17px;
  }
}
@media (min-width: 768px) {
  .form-horizontal .form-group-sm .control-label {
    padding-top: 6px;
    font-size: 12px;
  }
}
.btn {
  display: inline-block;
  margin-bottom: 0;
  font-weight: normal;
  text-align: center;
  vertical-align: middle;
  touch-action: manipulation;
  cursor: pointer;
  background-image: none;
  border: 1px solid transparent;
  white-space: nowrap;
  padding: 6px 12px;
  font-size: 13px;
  line-height: 1.42857143;
  border-radius: 2px;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
.btn:focus,
.btn:active:focus,
.btn.active:focus,
.btn.focus,
.btn:active.focus,
.btn.active.focus {
  outline: thin dotted;
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
}
.btn:hover,
.btn:focus,
.btn.focus {
  color: #333;
  text-decoration: none;
}
.btn:active,
.btn.active {
  outline: 0;
  background-image: none;
  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
}
.btn.disabled,
.btn[disabled],
fieldset[disabled] .btn {
  cursor: not-allowed;
  opacity: 0.65;
  filter: alpha(opacity=65);
  -webkit-box-shadow: none;
  box-shadow: none;
}
a.btn.disabled,
fieldset[disabled] a.btn {
  pointer-events: none;
}
.btn-default {
  color: #333;
  background-color: #fff;
  border-color: #ccc;
}
.btn-default:focus,
.btn-default.focus {
  color: #333;
  background-color: #e6e6e6;
  border-color: #8c8c8c;
}
.btn-default:hover {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
.btn-default:active,
.btn-default.active,
.open > .dropdown-toggle.btn-default {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
.btn-default:active:hover,
.btn-default.active:hover,
.open > .dropdown-toggle.btn-default:hover,
.btn-default:active:focus,
.btn-default.active:focus,
.open > .dropdown-toggle.btn-default:focus,
.btn-default:active.focus,
.btn-default.active.focus,
.open > .dropdown-toggle.btn-default.focus {
  color: #333;
  background-color: #d4d4d4;
  border-color: #8c8c8c;
}
.btn-default:active,
.btn-default.active,
.open > .dropdown-toggle.btn-default {
  background-image: none;
}
.btn-default.disabled:hover,
.btn-default[disabled]:hover,
fieldset[disabled] .btn-default:hover,
.btn-default.disabled:focus,
.btn-default[disabled]:focus,
fieldset[disabled] .btn-default:focus,
.btn-default.disabled.focus,
.btn-default[disabled].focus,
fieldset[disabled] .btn-default.focus {
  background-color: #fff;
  border-color: #ccc;
}
.btn-default .badge {
  color: #fff;
  background-color: #333;
}
.btn-primary {
  color: #fff;
  background-color: #337ab7;
  border-color: #2e6da4;
}
.btn-primary:focus,
.btn-primary.focus {
  color: #fff;
  background-color: #286090;
  border-color: #122b40;
}
.btn-primary:hover {
  color: #fff;
  background-color: #286090;
  border-color: #204d74;
}
.btn-primary:active,
.btn-primary.active,
.open > .dropdown-toggle.btn-primary {
  color: #fff;
  background-color: #286090;
  border-color: #204d74;
}
.btn-primary:active:hover,
.btn-primary.active:hover,
.open > .dropdown-toggle.btn-primary:hover,
.btn-primary:active:focus,
.btn-primary.active:focus,
.open > .dropdown-toggle.btn-primary:focus,
.btn-primary:active.focus,
.btn-primary.active.focus,
.open > .dropdown-toggle.btn-primary.focus {
  color: #fff;
  background-color: #204d74;
  border-color: #122b40;
}
.btn-primary:active,
.btn-primary.active,
.open > .dropdown-toggle.btn-primary {
  background-image: none;
}
.btn-primary.disabled:hover,
.btn-primary[disabled]:hover,
fieldset[disabled] .btn-primary:hover,
.btn-primary.disabled:focus,
.btn-primary[disabled]:focus,
fieldset[disabled] .btn-primary:focus,
.btn-primary.disabled.focus,
.btn-primary[disabled].focus,
fieldset[disabled] .btn-primary.focus {
  background-color: #337ab7;
  border-color: #2e6da4;
}
.btn-primary .badge {
  color: #337ab7;
  background-color: #fff;
}
.btn-success {
  color: #fff;
  background-color: #5cb85c;
  border-color: #4cae4c;
}
.btn-success:focus,
.btn-success.focus {
  color: #fff;
  background-color: #449d44;
  border-color: #255625;
}
.btn-success:hover {
  color: #fff;
  background-color: #449d44;
  border-color: #398439;
}
.btn-success:active,
.btn-success.active,
.open > .dropdown-toggle.btn-success {
  color: #fff;
  background-color: #449d44;
  border-color: #398439;
}
.btn-success:active:hover,
.btn-success.active:hover,
.open > .dropdown-toggle.btn-success:hover,
.btn-success:active:focus,
.btn-success.active:focus,
.open > .dropdown-toggle.btn-success:focus,
.btn-success:active.focus,
.btn-success.active.focus,
.open > .dropdown-toggle.btn-success.focus {
  color: #fff;
  background-color: #398439;
  border-color: #255625;
}
.btn-success:active,
.btn-success.active,
.open > .dropdown-toggle.btn-success {
  background-image: none;
}
.btn-success.disabled:hover,
.btn-success[disabled]:hover,
fieldset[disabled] .btn-success:hover,
.btn-success.disabled:focus,
.btn-success[disabled]:focus,
fieldset[disabled] .btn-success:focus,
.btn-success.disabled.focus,
.btn-success[disabled].focus,
fieldset[disabled] .btn-success.focus {
  background-color: #5cb85c;
  border-color: #4cae4c;
}
.btn-success .badge {
  color: #5cb85c;
  background-color: #fff;
}
.btn-info {
  color: #fff;
  background-color: #5bc0de;
  border-color: #46b8da;
}
.btn-info:focus,
.btn-info.focus {
  color: #fff;
  background-color: #31b0d5;
  border-color: #1b6d85;
}
.btn-info:hover {
  color: #fff;
  background-color: #31b0d5;
  border-color: #269abc;
}
.btn-info:active,
.btn-info.active,
.open > .dropdown-toggle.btn-info {
  color: #fff;
  background-color: #31b0d5;
  border-color: #269abc;
}
.btn-info:active:hover,
.btn-info.active:hover,
.open > .dropdown-toggle.btn-info:hover,
.btn-info:active:focus,
.btn-info.active:focus,
.open > .dropdown-toggle.btn-info:focus,
.btn-info:active.focus,
.btn-info.active.focus,
.open > .dropdown-toggle.btn-info.focus {
  color: #fff;
  background-color: #269abc;
  border-color: #1b6d85;
}
.btn-info:active,
.btn-info.active,
.open > .dropdown-toggle.btn-info {
  background-image: none;
}
.btn-info.disabled:hover,
.btn-info[disabled]:hover,
fieldset[disabled] .btn-info:hover,
.btn-info.disabled:focus,
.btn-info[disabled]:focus,
fieldset[disabled] .btn-info:focus,
.btn-info.disabled.focus,
.btn-info[disabled].focus,
fieldset[disabled] .btn-info.focus {
  background-color: #5bc0de;
  border-color: #46b8da;
}
.btn-info .badge {
  color: #5bc0de;
  background-color: #fff;
}
.btn-warning {
  color: #fff;
  background-color: #f0ad4e;
  border-color: #eea236;
}
.btn-warning:focus,
.btn-warning.focus {
  color: #fff;
  background-color: #ec971f;
  border-color: #985f0d;
}
.btn-warning:hover {
  color: #fff;
  background-color: #ec971f;
  border-color: #d58512;
}
.btn-warning:active,
.btn-warning.active,
.open > .dropdown-toggle.btn-warning {
  color: #fff;
  background-color: #ec971f;
  border-color: #d58512;
}
.btn-warning:active:hover,
.btn-warning.active:hover,
.open > .dropdown-toggle.btn-warning:hover,
.btn-warning:active:focus,
.btn-warning.active:focus,
.open > .dropdown-toggle.btn-warning:focus,
.btn-warning:active.focus,
.btn-warning.active.focus,
.open > .dropdown-toggle.btn-warning.focus {
  color: #fff;
  background-color: #d58512;
  border-color: #985f0d;
}
.btn-warning:active,
.btn-warning.active,
.open > .dropdown-toggle.btn-warning {
  background-image: none;
}
.btn-warning.disabled:hover,
.btn-warning[disabled]:hover,
fieldset[disabled] .btn-warning:hover,
.btn-warning.disabled:focus,
.btn-warning[disabled]:focus,
fieldset[disabled] .btn-warning:focus,
.btn-warning.disabled.focus,
.btn-warning[disabled].focus,
fieldset[disabled] .btn-warning.focus {
  background-color: #f0ad4e;
  border-color: #eea236;
}
.btn-warning .badge {
  color: #f0ad4e;
  background-color: #fff;
}
.btn-danger {
  color: #fff;
  background-color: #d9534f;
  border-color: #d43f3a;
}
.btn-danger:focus,
.btn-danger.focus {
  color: #fff;
  background-color: #c9302c;
  border-color: #761c19;
}
.btn-danger:hover {
  color: #fff;
  background-color: #c9302c;
  border-color: #ac2925;
}
.btn-danger:active,
.btn-danger.active,
.open > .dropdown-toggle.btn-danger {
  color: #fff;
  background-color: #c9302c;
  border-color: #ac2925;
}
.btn-danger:active:hover,
.btn-danger.active:hover,
.open > .dropdown-toggle.btn-danger:hover,
.btn-danger:active:focus,
.btn-danger.active:focus,
.open > .dropdown-toggle.btn-danger:focus,
.btn-danger:active.focus,
.btn-danger.active.focus,
.open > .dropdown-toggle.btn-danger.focus {
  color: #fff;
  background-color: #ac2925;
  border-color: #761c19;
}
.btn-danger:active,
.btn-danger.active,
.open > .dropdown-toggle.btn-danger {
  background-image: none;
}
.btn-danger.disabled:hover,
.btn-danger[disabled]:hover,
fieldset[disabled] .btn-danger:hover,
.btn-danger.disabled:focus,
.btn-danger[disabled]:focus,
fieldset[disabled] .btn-danger:focus,
.btn-danger.disabled.focus,
.btn-danger[disabled].focus,
fieldset[disabled] .btn-danger.focus {
  background-color: #d9534f;
  border-color: #d43f3a;
}
.btn-danger .badge {
  color: #d9534f;
  background-color: #fff;
}
.btn-link {
  color: #337ab7;
  font-weight: normal;
  border-radius: 0;
}
.btn-link,
.btn-link:active,
.btn-link.active,
.btn-link[disabled],
fieldset[disabled] .btn-link {
  background-color: transparent;
  -webkit-box-shadow: none;
  box-shadow: none;
}
.btn-link,
.btn-link:hover,
.btn-link:focus,
.btn-link:active {
  border-color: transparent;
}
.btn-link:hover,
.btn-link:focus {
  color: #23527c;
  text-decoration: underline;
  background-color: transparent;
}
.btn-link[disabled]:hover,
fieldset[disabled] .btn-link:hover,
.btn-link[disabled]:focus,
fieldset[disabled] .btn-link:focus {
  color: #777777;
  text-decoration: none;
}
.btn-lg,
.btn-group-lg > .btn {
  padding: 10px 16px;
  font-size: 17px;
  line-height: 1.3333333;
  border-radius: 3px;
}
.btn-sm,
.btn-group-sm > .btn {
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 1px;
}
.btn-xs,
.btn-group-xs > .btn {
  padding: 1px 5px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 1px;
}
.btn-block {
  display: block;
  width: 100%;
}
.btn-block + .btn-block {
  margin-top: 5px;
}
input[type="submit"].btn-block,
input[type="reset"].btn-block,
input[type="button"].btn-block {
  width: 100%;
}
.fade {
  opacity: 0;
  -webkit-transition: opacity 0.15s linear;
  -o-transition: opacity 0.15s linear;
  transition: opacity 0.15s linear;
}
.fade.in {
  opacity: 1;
}
.collapse {
  display: none;
}
.collapse.in {
  display: block;
}
tr.collapse.in {
  display: table-row;
}
tbody.collapse.in {
  display: table-row-group;
}
.collapsing {
  position: relative;
  height: 0;
  overflow: hidden;
  -webkit-transition-property: height, visibility;
  transition-property: height, visibility;
  -webkit-transition-duration: 0.35s;
  transition-duration: 0.35s;
  -webkit-transition-timing-function: ease;
  transition-timing-function: ease;
}
.caret {
  display: inline-block;
  width: 0;
  height: 0;
  margin-left: 2px;
  vertical-align: middle;
  border-top: 4px dashed;
  border-top: 4px solid \9;
  border-right: 4px solid transparent;
  border-left: 4px solid transparent;
}
.dropup,
.dropdown {
  position: relative;
}
.dropdown-toggle:focus {
  outline: 0;
}
.dropdown-menu {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 1000;
  display: none;
  float: left;
  min-width: 160px;
  padding: 5px 0;
  margin: 2px 0 0;
  list-style: none;
  font-size: 13px;
  text-align: left;
  background-color: #fff;
  border: 1px solid #ccc;
  border: 1px solid rgba(0, 0, 0, 0.15);
  border-radius: 2px;
  -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
  background-clip: padding-box;
}
.dropdown-menu.pull-right {
  right: 0;
  left: auto;
}
.dropdown-menu .divider {
  height: 1px;
  margin: 8px 0;
  overflow: hidden;
  background-color: #e5e5e5;
}
.dropdown-menu > li > a {
  display: block;
  padding: 3px 20px;
  clear: both;
  font-weight: normal;
  line-height: 1.42857143;
  color: #333333;
  white-space: nowrap;
}
.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus {
  text-decoration: none;
  color: #262626;
  background-color: #f5f5f5;
}
.dropdown-menu > .active > a,
.dropdown-menu > .active > a:hover,
.dropdown-menu > .active > a:focus {
  color: #fff;
  text-decoration: none;
  outline: 0;
  background-color: #337ab7;
}
.dropdown-menu > .disabled > a,
.dropdown-menu > .disabled > a:hover,
.dropdown-menu > .disabled > a:focus {
  color: #777777;
}
.dropdown-menu > .disabled > a:hover,
.dropdown-menu > .disabled > a:focus {
  text-decoration: none;
  background-color: transparent;
  background-image: none;
  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
  cursor: not-allowed;
}
.open > .dropdown-menu {
  display: block;
}
.open > a {
  outline: 0;
}
.dropdown-menu-right {
  left: auto;
  right: 0;
}
.dropdown-menu-left {
  left: 0;
  right: auto;
}
.dropdown-header {
  display: block;
  padding: 3px 20px;
  font-size: 12px;
  line-height: 1.42857143;
  color: #777777;
  white-space: nowrap;
}
.dropdown-backdrop {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  top: 0;
  z-index: 990;
}
.pull-right > .dropdown-menu {
  right: 0;
  left: auto;
}
.dropup .caret,
.navbar-fixed-bottom .dropdown .caret {
  border-top: 0;
  border-bottom: 4px dashed;
  border-bottom: 4px solid \9;
  content: "";
}
.dropup .dropdown-menu,
.navbar-fixed-bottom .dropdown .dropdown-menu {
  top: auto;
  bottom: 100%;
  margin-bottom: 2px;
}
@media (min-width: 541px) {
  .navbar-right .dropdown-menu {
    left: auto;
    right: 0;
  }
  .navbar-right .dropdown-menu-left {
    left: 0;
    right: auto;
  }
}
.btn-group,
.btn-group-vertical {
  position: relative;
  display: inline-block;
  vertical-align: middle;
}
.btn-group > .btn,
.btn-group-vertical > .btn {
  position: relative;
  float: left;
}
.btn-group > .btn:hover,
.btn-group-vertical > .btn:hover,
.btn-group > .btn:focus,
.btn-group-vertical > .btn:focus,
.btn-group > .btn:active,
.btn-group-vertical > .btn:active,
.btn-group > .btn.active,
.btn-group-vertical > .btn.active {
  z-index: 2;
}
.btn-group .btn + .btn,
.btn-group .btn + .btn-group,
.btn-group .btn-group + .btn,
.btn-group .btn-group + .btn-group {
  margin-left: -1px;
}
.btn-toolbar {
  margin-left: -5px;
}
.btn-toolbar .btn,
.btn-toolbar .btn-group,
.btn-toolbar .input-group {
  float: left;
}
.btn-toolbar > .btn,
.btn-toolbar > .btn-group,
.btn-toolbar > .input-group {
  margin-left: 5px;
}
.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
  border-radius: 0;
}
.btn-group > .btn:first-child {
  margin-left: 0;
}
.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
  border-bottom-right-radius: 0;
  border-top-right-radius: 0;
}
.btn-group > .btn:last-child:not(:first-child),
.btn-group > .dropdown-toggle:not(:first-child) {
  border-bottom-left-radius: 0;
  border-top-left-radius: 0;
}
.btn-group > .btn-group {
  float: left;
}
.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
  border-radius: 0;
}
.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,
.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
  border-bottom-right-radius: 0;
  border-top-right-radius: 0;
}
.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
  border-bottom-left-radius: 0;
  border-top-left-radius: 0;
}
.btn-group .dropdown-toggle:active,
.btn-group.open .dropdown-toggle {
  outline: 0;
}
.btn-group > .btn + .dropdown-toggle {
  padding-left: 8px;
  padding-right: 8px;
}
.btn-group > .btn-lg + .dropdown-toggle {
  padding-left: 12px;
  padding-right: 12px;
}
.btn-group.open .dropdown-toggle {
  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
}
.btn-group.open .dropdown-toggle.btn-link {
  -webkit-box-shadow: none;
  box-shadow: none;
}
.btn .caret {
  margin-left: 0;
}
.btn-lg .caret {
  border-width: 5px 5px 0;
  border-bottom-width: 0;
}
.dropup .btn-lg .caret {
  border-width: 0 5px 5px;
}
.btn-group-vertical > .btn,
.btn-group-vertical > .btn-group,
.btn-group-vertical > .btn-group > .btn {
  display: block;
  float: none;
  width: 100%;
  max-width: 100%;
}
.btn-group-vertical > .btn-group > .btn {
  float: none;
}
.btn-group-vertical > .btn + .btn,
.btn-group-vertical > .btn + .btn-group,
.btn-group-vertical > .btn-group + .btn,
.btn-group-vertical > .btn-group + .btn-group {
  margin-top: -1px;
  margin-left: 0;
}
.btn-group-vertical > .btn:not(:first-child):not(:last-child) {
  border-radius: 0;
}
.btn-group-vertical > .btn:first-child:not(:last-child) {
  border-top-right-radius: 2px;
  border-top-left-radius: 2px;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}
.btn-group-vertical > .btn:last-child:not(:first-child) {
  border-top-right-radius: 0;
  border-top-left-radius: 0;
  border-bottom-right-radius: 2px;
  border-bottom-left-radius: 2px;
}
.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
  border-radius: 0;
}
.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,
.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}
.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
  border-top-right-radius: 0;
  border-top-left-radius: 0;
}
.btn-group-justified {
  display: table;
  width: 100%;
  table-layout: fixed;
  border-collapse: separate;
}
.btn-group-justified > .btn,
.btn-group-justified > .btn-group {
  float: none;
  display: table-cell;
  width: 1%;
}
.btn-group-justified > .btn-group .btn {
  width: 100%;
}
.btn-group-justified > .btn-group .dropdown-menu {
  left: auto;
}
[data-toggle="buttons"] > .btn input[type="radio"],
[data-toggle="buttons"] > .btn-group > .btn input[type="radio"],
[data-toggle="buttons"] > .btn input[type="checkbox"],
[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] {
  position: absolute;
  clip: rect(0, 0, 0, 0);
  pointer-events: none;
}
.input-group {
  position: relative;
  display: table;
  border-collapse: separate;
}
.input-group[class*="col-"] {
  float: none;
  padding-left: 0;
  padding-right: 0;
}
.input-group .form-control {
  position: relative;
  z-index: 2;
  float: left;
  width: 100%;
  margin-bottom: 0;
}
.input-group .form-control:focus {
  z-index: 3;
}
.input-group-lg > .form-control,
.input-group-lg > .input-group-addon,
.input-group-lg > .input-group-btn > .btn {
  height: 45px;
  padding: 10px 16px;
  font-size: 17px;
  line-height: 1.3333333;
  border-radius: 3px;
}
select.input-group-lg > .form-control,
select.input-group-lg > .input-group-addon,
select.input-group-lg > .input-group-btn > .btn {
  height: 45px;
  line-height: 45px;
}
textarea.input-group-lg > .form-control,
textarea.input-group-lg > .input-group-addon,
textarea.input-group-lg > .input-group-btn > .btn,
select[multiple].input-group-lg > .form-control,
select[multiple].input-group-lg > .input-group-addon,
select[multiple].input-group-lg > .input-group-btn > .btn {
  height: auto;
}
.input-group-sm > .form-control,
.input-group-sm > .input-group-addon,
.input-group-sm > .input-group-btn > .btn {
  height: 30px;
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 1px;
}
select.input-group-sm > .form-control,
select.input-group-sm > .input-group-addon,
select.input-group-sm > .input-group-btn > .btn {
  height: 30px;
  line-height: 30px;
}
textarea.input-group-sm > .form-control,
textarea.input-group-sm > .input-group-addon,
textarea.input-group-sm > .input-group-btn > .btn,
select[multiple].input-group-sm > .form-control,
select[multiple].input-group-sm > .input-group-addon,
select[multiple].input-group-sm > .input-group-btn > .btn {
  height: auto;
}
.input-group-addon,
.input-group-btn,
.input-group .form-control {
  display: table-cell;
}
.input-group-addon:not(:first-child):not(:last-child),
.input-group-btn:not(:first-child):not(:last-child),
.input-group .form-control:not(:first-child):not(:last-child) {
  border-radius: 0;
}
.input-group-addon,
.input-group-btn {
  width: 1%;
  white-space: nowrap;
  vertical-align: middle;
}
.input-group-addon {
  padding: 6px 12px;
  font-size: 13px;
  font-weight: normal;
  line-height: 1;
  color: #555555;
  text-align: center;
  background-color: #eeeeee;
  border: 1px solid #ccc;
  border-radius: 2px;
}
.input-group-addon.input-sm {
  padding: 5px 10px;
  font-size: 12px;
  border-radius: 1px;
}
.input-group-addon.input-lg {
  padding: 10px 16px;
  font-size: 17px;
  border-radius: 3px;
}
.input-group-addon input[type="radio"],
.input-group-addon input[type="checkbox"] {
  margin-top: 0;
}
.input-group .form-control:first-child,
.input-group-addon:first-child,
.input-group-btn:first-child > .btn,
.input-group-btn:first-child > .btn-group > .btn,
.input-group-btn:first-child > .dropdown-toggle,
.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
  border-bottom-right-radius: 0;
  border-top-right-radius: 0;
}
.input-group-addon:first-child {
  border-right: 0;
}
.input-group .form-control:last-child,
.input-group-addon:last-child,
.input-group-btn:last-child > .btn,
.input-group-btn:last-child > .btn-group > .btn,
.input-group-btn:last-child > .dropdown-toggle,
.input-group-btn:first-child > .btn:not(:first-child),
.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
  border-bottom-left-radius: 0;
  border-top-left-radius: 0;
}
.input-group-addon:last-child {
  border-left: 0;
}
.input-group-btn {
  position: relative;
  font-size: 0;
  white-space: nowrap;
}
.input-group-btn > .btn {
  position: relative;
}
.input-group-btn > .btn + .btn {
  margin-left: -1px;
}
.input-group-btn > .btn:hover,
.input-group-btn > .btn:focus,
.input-group-btn > .btn:active {
  z-index: 2;
}
.input-group-btn:first-child > .btn,
.input-group-btn:first-child > .btn-group {
  margin-right: -1px;
}
.input-group-btn:last-child > .btn,
.input-group-btn:last-child > .btn-group {
  z-index: 2;
  margin-left: -1px;
}
.nav {
  margin-bottom: 0;
  padding-left: 0;
  list-style: none;
}
.nav > li {
  position: relative;
  display: block;
}
.nav > li > a {
  position: relative;
  display: block;
  padding: 10px 15px;
}
.nav > li > a:hover,
.nav > li > a:focus {
  text-decoration: none;
  background-color: #eeeeee;
}
.nav > li.disabled > a {
  color: #777777;
}
.nav > li.disabled > a:hover,
.nav > li.disabled > a:focus {
  color: #777777;
  text-decoration: none;
  background-color: transparent;
  cursor: not-allowed;
}
.nav .open > a,
.nav .open > a:hover,
.nav .open > a:focus {
  background-color: #eeeeee;
  border-color: #337ab7;
}
.nav .nav-divider {
  height: 1px;
  margin: 8px 0;
  overflow: hidden;
  background-color: #e5e5e5;
}
.nav > li > a > img {
  max-width: none;
}
.nav-tabs {
  border-bottom: 1px solid #ddd;
}
.nav-tabs > li {
  float: left;
  margin-bottom: -1px;
}
.nav-tabs > li > a {
  margin-right: 2px;
  line-height: 1.42857143;
  border: 1px solid transparent;
  border-radius: 2px 2px 0 0;
}
.nav-tabs > li > a:hover {
  border-color: #eeeeee #eeeeee #ddd;
}
.nav-tabs > li.active > a,
.nav-tabs > li.active > a:hover,
.nav-tabs > li.active > a:focus {
  color: #555555;
  background-color: #fff;
  border: 1px solid #ddd;
  border-bottom-color: transparent;
  cursor: default;
}
.nav-tabs.nav-justified {
  width: 100%;
  border-bottom: 0;
}
.nav-tabs.nav-justified > li {
  float: none;
}
.nav-tabs.nav-justified > li > a {
  text-align: center;
  margin-bottom: 5px;
}
.nav-tabs.nav-justified > .dropdown .dropdown-menu {
  top: auto;
  left: auto;
}
@media (min-width: 768px) {
  .nav-tabs.nav-justified > li {
    display: table-cell;
    width: 1%;
  }
  .nav-tabs.nav-justified > li > a {
    margin-bottom: 0;
  }
}
.nav-tabs.nav-justified > li > a {
  margin-right: 0;
  border-radius: 2px;
}
.nav-tabs.nav-justified > .active > a,
.nav-tabs.nav-justified > .active > a:hover,
.nav-tabs.nav-justified > .active > a:focus {
  border: 1px solid #ddd;
}
@media (min-width: 768px) {
  .nav-tabs.nav-justified > li > a {
    border-bottom: 1px solid #ddd;
    border-radius: 2px 2px 0 0;
  }
  .nav-tabs.nav-justified > .active > a,
  .nav-tabs.nav-justified > .active > a:hover,
  .nav-tabs.nav-justified > .active > a:focus {
    border-bottom-color: #fff;
  }
}
.nav-pills > li {
  float: left;
}
.nav-pills > li > a {
  border-radius: 2px;
}
.nav-pills > li + li {
  margin-left: 2px;
}
.nav-pills > li.active > a,
.nav-pills > li.active > a:hover,
.nav-pills > li.active > a:focus {
  color: #fff;
  background-color: #337ab7;
}
.nav-stacked > li {
  float: none;
}
.nav-stacked > li + li {
  margin-top: 2px;
  margin-left: 0;
}
.nav-justified {
  width: 100%;
}
.nav-justified > li {
  float: none;
}
.nav-justified > li > a {
  text-align: center;
  margin-bottom: 5px;
}
.nav-justified > .dropdown .dropdown-menu {
  top: auto;
  left: auto;
}
@media (min-width: 768px) {
  .nav-justified > li {
    display: table-cell;
    width: 1%;
  }
  .nav-justified > li > a {
    margin-bottom: 0;
  }
}
.nav-tabs-justified {
  border-bottom: 0;
}
.nav-tabs-justified > li > a {
  margin-right: 0;
  border-radius: 2px;
}
.nav-tabs-justified > .active > a,
.nav-tabs-justified > .active > a:hover,
.nav-tabs-justified > .active > a:focus {
  border: 1px solid #ddd;
}
@media (min-width: 768px) {
  .nav-tabs-justified > li > a {
    border-bottom: 1px solid #ddd;
    border-radius: 2px 2px 0 0;
  }
  .nav-tabs-justified > .active > a,
  .nav-tabs-justified > .active > a:hover,
  .nav-tabs-justified > .active > a:focus {
    border-bottom-color: #fff;
  }
}
.tab-content > .tab-pane {
  display: none;
}
.tab-content > .active {
  display: block;
}
.nav-tabs .dropdown-menu {
  margin-top: -1px;
  border-top-right-radius: 0;
  border-top-left-radius: 0;
}
.navbar {
  position: relative;
  min-height: 30px;
  margin-bottom: 18px;
  border: 1px solid transparent;
}
@media (min-width: 541px) {
  .navbar {
    border-radius: 2px;
  }
}
@media (min-width: 541px) {
  .navbar-header {
    float: left;
  }
}
.navbar-collapse {
  overflow-x: visible;
  padding-right: 0px;
  padding-left: 0px;
  border-top: 1px solid transparent;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
  -webkit-overflow-scrolling: touch;
}
.navbar-collapse.in {
  overflow-y: auto;
}
@media (min-width: 541px) {
  .navbar-collapse {
    width: auto;
    border-top: 0;
    box-shadow: none;
  }
  .navbar-collapse.collapse {
    display: block !important;
    height: auto !important;
    padding-bottom: 0;
    overflow: visible !important;
  }
  .navbar-collapse.in {
    overflow-y: visible;
  }
  .navbar-fixed-top .navbar-collapse,
  .navbar-static-top .navbar-collapse,
  .navbar-fixed-bottom .navbar-collapse {
    padding-left: 0;
    padding-right: 0;
  }
}
.navbar-fixed-top .navbar-collapse,
.navbar-fixed-bottom .navbar-collapse {
  max-height: 340px;
}
@media (max-device-width: 540px) and (orientation: landscape) {
  .navbar-fixed-top .navbar-collapse,
  .navbar-fixed-bottom .navbar-collapse {
    max-height: 200px;
  }
}
.container > .navbar-header,
.container-fluid > .navbar-header,
.container > .navbar-collapse,
.container-fluid > .navbar-collapse {
  margin-right: 0px;
  margin-left: 0px;
}
@media (min-width: 541px) {
  .container > .navbar-header,
  .container-fluid > .navbar-header,
  .container > .navbar-collapse,
  .container-fluid > .navbar-collapse {
    margin-right: 0;
    margin-left: 0;
  }
}
.navbar-static-top {
  z-index: 1000;
  border-width: 0 0 1px;
}
@media (min-width: 541px) {
  .navbar-static-top {
    border-radius: 0;
  }
}
.navbar-fixed-top,
.navbar-fixed-bottom {
  position: fixed;
  right: 0;
  left: 0;
  z-index: 1030;
}
@media (min-width: 541px) {
  .navbar-fixed-top,
  .navbar-fixed-bottom {
    border-radius: 0;
  }
}
.navbar-fixed-top {
  top: 0;
  border-width: 0 0 1px;
}
.navbar-fixed-bottom {
  bottom: 0;
  margin-bottom: 0;
  border-width: 1px 0 0;
}
.navbar-brand {
  float: left;
  padding: 6px 0px;
  font-size: 17px;
  line-height: 18px;
  height: 30px;
}
.navbar-brand:hover,
.navbar-brand:focus {
  text-decoration: none;
}
.navbar-brand > img {
  display: block;
}
@media (min-width: 541px) {
  .navbar > .container .navbar-brand,
  .navbar > .container-fluid .navbar-brand {
    margin-left: 0px;
  }
}
.navbar-toggle {
  position: relative;
  float: right;
  margin-right: 0px;
  padding: 9px 10px;
  margin-top: -2px;
  margin-bottom: -2px;
  background-color: transparent;
  background-image: none;
  border: 1px solid transparent;
  border-radius: 2px;
}
.navbar-toggle:focus {
  outline: 0;
}
.navbar-toggle .icon-bar {
  display: block;
  width: 22px;
  height: 2px;
  border-radius: 1px;
}
.navbar-toggle .icon-bar + .icon-bar {
  margin-top: 4px;
}
@media (min-width: 541px) {
  .navbar-toggle {
    display: none;
  }
}
.navbar-nav {
  margin: 3px 0px;
}
.navbar-nav > li > a {
  padding-top: 10px;
  padding-bottom: 10px;
  line-height: 18px;
}
@media (max-width: 540px) {
  .navbar-nav .open .dropdown-menu {
    position: static;
    float: none;
    width: auto;
    margin-top: 0;
    background-color: transparent;
    border: 0;
    box-shadow: none;
  }
  .navbar-nav .open .dropdown-menu > li > a,
  .navbar-nav .open .dropdown-menu .dropdown-header {
    padding: 5px 15px 5px 25px;
  }
  .navbar-nav .open .dropdown-menu > li > a {
    line-height: 18px;
  }
  .navbar-nav .open .dropdown-menu > li > a:hover,
  .navbar-nav .open .dropdown-menu > li > a:focus {
    background-image: none;
  }
}
@media (min-width: 541px) {
  .navbar-nav {
    float: left;
    margin: 0;
  }
  .navbar-nav > li {
    float: left;
  }
  .navbar-nav > li > a {
    padding-top: 6px;
    padding-bottom: 6px;
  }
}
.navbar-form {
  margin-left: 0px;
  margin-right: 0px;
  padding: 10px 0px;
  border-top: 1px solid transparent;
  border-bottom: 1px solid transparent;
  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
  margin-top: -1px;
  margin-bottom: -1px;
}
@media (min-width: 768px) {
  .navbar-form .form-group {
    display: inline-block;
    margin-bottom: 0;
    vertical-align: middle;
  }
  .navbar-form .form-control {
    display: inline-block;
    width: auto;
    vertical-align: middle;
  }
  .navbar-form .form-control-static {
    display: inline-block;
  }
  .navbar-form .input-group {
    display: inline-table;
    vertical-align: middle;
  }
  .navbar-form .input-group .input-group-addon,
  .navbar-form .input-group .input-group-btn,
  .navbar-form .input-group .form-control {
    width: auto;
  }
  .navbar-form .input-group > .form-control {
    width: 100%;
  }
  .navbar-form .control-label {
    margin-bottom: 0;
    vertical-align: middle;
  }
  .navbar-form .radio,
  .navbar-form .checkbox {
    display: inline-block;
    margin-top: 0;
    margin-bottom: 0;
    vertical-align: middle;
  }
  .navbar-form .radio label,
  .navbar-form .checkbox label {
    padding-left: 0;
  }
  .navbar-form .radio input[type="radio"],
  .navbar-form .checkbox input[type="checkbox"] {
    position: relative;
    margin-left: 0;
  }
  .navbar-form .has-feedback .form-control-feedback {
    top: 0;
  }
}
@media (max-width: 540px) {
  .navbar-form .form-group {
    margin-bottom: 5px;
  }
  .navbar-form .form-group:last-child {
    margin-bottom: 0;
  }
}
@media (min-width: 541px) {
  .navbar-form {
    width: auto;
    border: 0;
    margin-left: 0;
    margin-right: 0;
    padding-top: 0;
    padding-bottom: 0;
    -webkit-box-shadow: none;
    box-shadow: none;
  }
}
.navbar-nav > li > .dropdown-menu {
  margin-top: 0;
  border-top-right-radius: 0;
  border-top-left-radius: 0;
}
.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
  margin-bottom: 0;
  border-top-right-radius: 2px;
  border-top-left-radius: 2px;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}
.navbar-btn {
  margin-top: -1px;
  margin-bottom: -1px;
}
.navbar-btn.btn-sm {
  margin-top: 0px;
  margin-bottom: 0px;
}
.navbar-btn.btn-xs {
  margin-top: 4px;
  margin-bottom: 4px;
}
.navbar-text {
  margin-top: 6px;
  margin-bottom: 6px;
}
@media (min-width: 541px) {
  .navbar-text {
    float: left;
    margin-left: 0px;
    margin-right: 0px;
  }
}
@media (min-width: 541px) {
  .navbar-left {
    float: left !important;
    float: left;
  }
  .navbar-right {
    float: right !important;
    float: right;
    margin-right: 0px;
  }
  .navbar-right ~ .navbar-right {
    margin-right: 0;
  }
}
.navbar-default {
  background-color: #f8f8f8;
  border-color: #e7e7e7;
}
.navbar-default .navbar-brand {
  color: #777;
}
.navbar-default .navbar-brand:hover,
.navbar-default .navbar-brand:focus {
  color: #5e5e5e;
  background-color: transparent;
}
.navbar-default .navbar-text {
  color: #777;
}
.navbar-default .navbar-nav > li > a {
  color: #777;
}
.navbar-default .navbar-nav > li > a:hover,
.navbar-default .navbar-nav > li > a:focus {
  color: #333;
  background-color: transparent;
}
.navbar-default .navbar-nav > .active > a,
.navbar-default .navbar-nav > .active > a:hover,
.navbar-default .navbar-nav > .active > a:focus {
  color: #555;
  background-color: #e7e7e7;
}
.navbar-default .navbar-nav > .disabled > a,
.navbar-default .navbar-nav > .disabled > a:hover,
.navbar-default .navbar-nav > .disabled > a:focus {
  color: #ccc;
  background-color: transparent;
}
.navbar-default .navbar-toggle {
  border-color: #ddd;
}
.navbar-default .navbar-toggle:hover,
.navbar-default .navbar-toggle:focus {
  background-color: #ddd;
}
.navbar-default .navbar-toggle .icon-bar {
  background-color: #888;
}
.navbar-default .navbar-collapse,
.navbar-default .navbar-form {
  border-color: #e7e7e7;
}
.navbar-default .navbar-nav > .open > a,
.navbar-default .navbar-nav > .open > a:hover,
.navbar-default .navbar-nav > .open > a:focus {
  background-color: #e7e7e7;
  color: #555;
}
@media (max-width: 540px) {
  .navbar-default .navbar-nav .open .dropdown-menu > li > a {
    color: #777;
  }
  .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
  .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
    color: #333;
    background-color: transparent;
  }
  .navbar-default .navbar-nav .open .dropdown-menu > .active > a,
  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,
  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
    color: #555;
    background-color: #e7e7e7;
  }
  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,
  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,
  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {
    color: #ccc;
    background-color: transparent;
  }
}
.navbar-default .navbar-link {
  color: #777;
}
.navbar-default .navbar-link:hover {
  color: #333;
}
.navbar-default .btn-link {
  color: #777;
}
.navbar-default .btn-link:hover,
.navbar-default .btn-link:focus {
  color: #333;
}
.navbar-default .btn-link[disabled]:hover,
fieldset[disabled] .navbar-default .btn-link:hover,
.navbar-default .btn-link[disabled]:focus,
fieldset[disabled] .navbar-default .btn-link:focus {
  color: #ccc;
}
.navbar-inverse {
  background-color: #222;
  border-color: #080808;
}
.navbar-inverse .navbar-brand {
  color: #9d9d9d;
}
.navbar-inverse .navbar-brand:hover,
.navbar-inverse .navbar-brand:focus {
  color: #fff;
  background-color: transparent;
}
.navbar-inverse .navbar-text {
  color: #9d9d9d;
}
.navbar-inverse .navbar-nav > li > a {
  color: #9d9d9d;
}
.navbar-inverse .navbar-nav > li > a:hover,
.navbar-inverse .navbar-nav > li > a:focus {
  color: #fff;
  background-color: transparent;
}
.navbar-inverse .navbar-nav > .active > a,
.navbar-inverse .navbar-nav > .active > a:hover,
.navbar-inverse .navbar-nav > .active > a:focus {
  color: #fff;
  background-color: #080808;
}
.navbar-inverse .navbar-nav > .disabled > a,
.navbar-inverse .navbar-nav > .disabled > a:hover,
.navbar-inverse .navbar-nav > .disabled > a:focus {
  color: #444;
  background-color: transparent;
}
.navbar-inverse .navbar-toggle {
  border-color: #333;
}
.navbar-inverse .navbar-toggle:hover,
.navbar-inverse .navbar-toggle:focus {
  background-color: #333;
}
.navbar-inverse .navbar-toggle .icon-bar {
  background-color: #fff;
}
.navbar-inverse .navbar-collapse,
.navbar-inverse .navbar-form {
  border-color: #101010;
}
.navbar-inverse .navbar-nav > .open > a,
.navbar-inverse .navbar-nav > .open > a:hover,
.navbar-inverse .navbar-nav > .open > a:focus {
  background-color: #080808;
  color: #fff;
}
@media (max-width: 540px) {
  .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {
    border-color: #080808;
  }
  .navbar-inverse .navbar-nav .open .dropdown-menu .divider {
    background-color: #080808;
  }
  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
    color: #9d9d9d;
  }
  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,
  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
    color: #fff;
    background-color: transparent;
  }
  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,
  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,
  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {
    color: #fff;
    background-color: #080808;
  }
  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,
  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,
  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {
    color: #444;
    background-color: transparent;
  }
}
.navbar-inverse .navbar-link {
  color: #9d9d9d;
}
.navbar-inverse .navbar-link:hover {
  color: #fff;
}
.navbar-inverse .btn-link {
  color: #9d9d9d;
}
.navbar-inverse .btn-link:hover,
.navbar-inverse .btn-link:focus {
  color: #fff;
}
.navbar-inverse .btn-link[disabled]:hover,
fieldset[disabled] .navbar-inverse .btn-link:hover,
.navbar-inverse .btn-link[disabled]:focus,
fieldset[disabled] .navbar-inverse .btn-link:focus {
  color: #444;
}
.breadcrumb {
  padding: 8px 15px;
  margin-bottom: 18px;
  list-style: none;
  background-color: #f5f5f5;
  border-radius: 2px;
}
.breadcrumb > li {
  display: inline-block;
}
.breadcrumb > li + li:before {
  content: "/\00a0";
  padding: 0 5px;
  color: #5e5e5e;
}
.breadcrumb > .active {
  color: #777777;
}
.pagination {
  display: inline-block;
  padding-left: 0;
  margin: 18px 0;
  border-radius: 2px;
}
.pagination > li {
  display: inline;
}
.pagination > li > a,
.pagination > li > span {
  position: relative;
  float: left;
  padding: 6px 12px;
  line-height: 1.42857143;
  text-decoration: none;
  color: #337ab7;
  background-color: #fff;
  border: 1px solid #ddd;
  margin-left: -1px;
}
.pagination > li:first-child > a,
.pagination > li:first-child > span {
  margin-left: 0;
  border-bottom-left-radius: 2px;
  border-top-left-radius: 2px;
}
.pagination > li:last-child > a,
.pagination > li:last-child > span {
  border-bottom-right-radius: 2px;
  border-top-right-radius: 2px;
}
.pagination > li > a:hover,
.pagination > li > span:hover,
.pagination > li > a:focus,
.pagination > li > span:focus {
  z-index: 2;
  color: #23527c;
  background-color: #eeeeee;
  border-color: #ddd;
}
.pagination > .active > a,
.pagination > .active > span,
.pagination > .active > a:hover,
.pagination > .active > span:hover,
.pagination > .active > a:focus,
.pagination > .active > span:focus {
  z-index: 3;
  color: #fff;
  background-color: #337ab7;
  border-color: #337ab7;
  cursor: default;
}
.pagination > .disabled > span,
.pagination > .disabled > span:hover,
.pagination > .disabled > span:focus,
.pagination > .disabled > a,
.pagination > .disabled > a:hover,
.pagination > .disabled > a:focus {
  color: #777777;
  background-color: #fff;
  border-color: #ddd;
  cursor: not-allowed;
}
.pagination-lg > li > a,
.pagination-lg > li > span {
  padding: 10px 16px;
  font-size: 17px;
  line-height: 1.3333333;
}
.pagination-lg > li:first-child > a,
.pagination-lg > li:first-child > span {
  border-bottom-left-radius: 3px;
  border-top-left-radius: 3px;
}
.pagination-lg > li:last-child > a,
.pagination-lg > li:last-child > span {
  border-bottom-right-radius: 3px;
  border-top-right-radius: 3px;
}
.pagination-sm > li > a,
.pagination-sm > li > span {
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
}
.pagination-sm > li:first-child > a,
.pagination-sm > li:first-child > span {
  border-bottom-left-radius: 1px;
  border-top-left-radius: 1px;
}
.pagination-sm > li:last-child > a,
.pagination-sm > li:last-child > span {
  border-bottom-right-radius: 1px;
  border-top-right-radius: 1px;
}
.pager {
  padding-left: 0;
  margin: 18px 0;
  list-style: none;
  text-align: center;
}
.pager li {
  display: inline;
}
.pager li > a,
.pager li > span {
  display: inline-block;
  padding: 5px 14px;
  background-color: #fff;
  border: 1px solid #ddd;
  border-radius: 15px;
}
.pager li > a:hover,
.pager li > a:focus {
  text-decoration: none;
  background-color: #eeeeee;
}
.pager .next > a,
.pager .next > span {
  float: right;
}
.pager .previous > a,
.pager .previous > span {
  float: left;
}
.pager .disabled > a,
.pager .disabled > a:hover,
.pager .disabled > a:focus,
.pager .disabled > span {
  color: #777777;
  background-color: #fff;
  cursor: not-allowed;
}
.label {
  display: inline;
  padding: .2em .6em .3em;
  font-size: 75%;
  font-weight: bold;
  line-height: 1;
  color: #fff;
  text-align: center;
  white-space: nowrap;
  vertical-align: baseline;
  border-radius: .25em;
}
a.label:hover,
a.label:focus {
  color: #fff;
  text-decoration: none;
  cursor: pointer;
}
.label:empty {
  display: none;
}
.btn .label {
  position: relative;
  top: -1px;
}
.label-default {
  background-color: #777777;
}
.label-default[href]:hover,
.label-default[href]:focus {
  background-color: #5e5e5e;
}
.label-primary {
  background-color: #337ab7;
}
.label-primary[href]:hover,
.label-primary[href]:focus {
  background-color: #286090;
}
.label-success {
  background-color: #5cb85c;
}
.label-success[href]:hover,
.label-success[href]:focus {
  background-color: #449d44;
}
.label-info {
  background-color: #5bc0de;
}
.label-info[href]:hover,
.label-info[href]:focus {
  background-color: #31b0d5;
}
.label-warning {
  background-color: #f0ad4e;
}
.label-warning[href]:hover,
.label-warning[href]:focus {
  background-color: #ec971f;
}
.label-danger {
  background-color: #d9534f;
}
.label-danger[href]:hover,
.label-danger[href]:focus {
  background-color: #c9302c;
}
.badge {
  display: inline-block;
  min-width: 10px;
  padding: 3px 7px;
  font-size: 12px;
  font-weight: bold;
  color: #fff;
  line-height: 1;
  vertical-align: middle;
  white-space: nowrap;
  text-align: center;
  background-color: #777777;
  border-radius: 10px;
}
.badge:empty {
  display: none;
}
.btn .badge {
  position: relative;
  top: -1px;
}
.btn-xs .badge,
.btn-group-xs > .btn .badge {
  top: 0;
  padding: 1px 5px;
}
a.badge:hover,
a.badge:focus {
  color: #fff;
  text-decoration: none;
  cursor: pointer;
}
.list-group-item.active > .badge,
.nav-pills > .active > a > .badge {
  color: #337ab7;
  background-color: #fff;
}
.list-group-item > .badge {
  float: right;
}
.list-group-item > .badge + .badge {
  margin-right: 5px;
}
.nav-pills > li > a > .badge {
  margin-left: 3px;
}
.jumbotron {
  padding-top: 30px;
  padding-bottom: 30px;
  margin-bottom: 30px;
  color: inherit;
  background-color: #eeeeee;
}
.jumbotron h1,
.jumbotron .h1 {
  color: inherit;
}
.jumbotron p {
  margin-bottom: 15px;
  font-size: 20px;
  font-weight: 200;
}
.jumbotron > hr {
  border-top-color: #d5d5d5;
}
.container .jumbotron,
.container-fluid .jumbotron {
  border-radius: 3px;
  padding-left: 0px;
  padding-right: 0px;
}
.jumbotron .container {
  max-width: 100%;
}
@media screen and (min-width: 768px) {
  .jumbotron {
    padding-top: 48px;
    padding-bottom: 48px;
  }
  .container .jumbotron,
  .container-fluid .jumbotron {
    padding-left: 60px;
    padding-right: 60px;
  }
  .jumbotron h1,
  .jumbotron .h1 {
    font-size: 59px;
  }
}
.thumbnail {
  display: block;
  padding: 4px;
  margin-bottom: 18px;
  line-height: 1.42857143;
  background-color: #fff;
  border: 1px solid #ddd;
  border-radius: 2px;
  -webkit-transition: border 0.2s ease-in-out;
  -o-transition: border 0.2s ease-in-out;
  transition: border 0.2s ease-in-out;
}
.thumbnail > img,
.thumbnail a > img {
  margin-left: auto;
  margin-right: auto;
}
a.thumbnail:hover,
a.thumbnail:focus,
a.thumbnail.active {
  border-color: #337ab7;
}
.thumbnail .caption {
  padding: 9px;
  color: #000;
}
.alert {
  padding: 15px;
  margin-bottom: 18px;
  border: 1px solid transparent;
  border-radius: 2px;
}
.alert h4 {
  margin-top: 0;
  color: inherit;
}
.alert .alert-link {
  font-weight: bold;
}
.alert > p,
.alert > ul {
  margin-bottom: 0;
}
.alert > p + p {
  margin-top: 5px;
}
.alert-dismissable,
.alert-dismissible {
  padding-right: 35px;
}
.alert-dismissable .close,
.alert-dismissible .close {
  position: relative;
  top: -2px;
  right: -21px;
  color: inherit;
}
.alert-success {
  background-color: #dff0d8;
  border-color: #d6e9c6;
  color: #3c763d;
}
.alert-success hr {
  border-top-color: #c9e2b3;
}
.alert-success .alert-link {
  color: #2b542c;
}
.alert-info {
  background-color: #d9edf7;
  border-color: #bce8f1;
  color: #31708f;
}
.alert-info hr {
  border-top-color: #a6e1ec;
}
.alert-info .alert-link {
  color: #245269;
}
.alert-warning {
  background-color: #fcf8e3;
  border-color: #faebcc;
  color: #8a6d3b;
}
.alert-warning hr {
  border-top-color: #f7e1b5;
}
.alert-warning .alert-link {
  color: #66512c;
}
.alert-danger {
  background-color: #f2dede;
  border-color: #ebccd1;
  color: #a94442;
}
.alert-danger hr {
  border-top-color: #e4b9c0;
}
.alert-danger .alert-link {
  color: #843534;
}
@-webkit-keyframes progress-bar-stripes {
  from {
    background-position: 40px 0;
  }
  to {
    background-position: 0 0;
  }
}
@keyframes progress-bar-stripes {
  from {
    background-position: 40px 0;
  }
  to {
    background-position: 0 0;
  }
}
.progress {
  overflow: hidden;
  height: 18px;
  margin-bottom: 18px;
  background-color: #f5f5f5;
  border-radius: 2px;
  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
}
.progress-bar {
  float: left;
  width: 0%;
  height: 100%;
  font-size: 12px;
  line-height: 18px;
  color: #fff;
  text-align: center;
  background-color: #337ab7;
  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
  -webkit-transition: width 0.6s ease;
  -o-transition: width 0.6s ease;
  transition: width 0.6s ease;
}
.progress-striped .progress-bar,
.progress-bar-striped {
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-size: 40px 40px;
}
.progress.active .progress-bar,
.progress-bar.active {
  -webkit-animation: progress-bar-stripes 2s linear infinite;
  -o-animation: progress-bar-stripes 2s linear infinite;
  animation: progress-bar-stripes 2s linear infinite;
}
.progress-bar-success {
  background-color: #5cb85c;
}
.progress-striped .progress-bar-success {
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
}
.progress-bar-info {
  background-color: #5bc0de;
}
.progress-striped .progress-bar-info {
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
}
.progress-bar-warning {
  background-color: #f0ad4e;
}
.progress-striped .progress-bar-warning {
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
}
.progress-bar-danger {
  background-color: #d9534f;
}
.progress-striped .progress-bar-danger {
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
}
.media {
  margin-top: 15px;
}
.media:first-child {
  margin-top: 0;
}
.media,
.media-body {
  zoom: 1;
  overflow: hidden;
}
.media-body {
  width: 10000px;
}
.media-object {
  display: block;
}
.media-object.img-thumbnail {
  max-width: none;
}
.media-right,
.media > .pull-right {
  padding-left: 10px;
}
.media-left,
.media > .pull-left {
  padding-right: 10px;
}
.media-left,
.media-right,
.media-body {
  display: table-cell;
  vertical-align: top;
}
.media-middle {
  vertical-align: middle;
}
.media-bottom {
  vertical-align: bottom;
}
.media-heading {
  margin-top: 0;
  margin-bottom: 5px;
}
.media-list {
  padding-left: 0;
  list-style: none;
}
.list-group {
  margin-bottom: 20px;
  padding-left: 0;
}
.list-group-item {
  position: relative;
  display: block;
  padding: 10px 15px;
  margin-bottom: -1px;
  background-color: #fff;
  border: 1px solid #ddd;
}
.list-group-item:first-child {
  border-top-right-radius: 2px;
  border-top-left-radius: 2px;
}
.list-group-item:last-child {
  margin-bottom: 0;
  border-bottom-right-radius: 2px;
  border-bottom-left-radius: 2px;
}
a.list-group-item,
button.list-group-item {
  color: #555;
}
a.list-group-item .list-group-item-heading,
button.list-group-item .list-group-item-heading {
  color: #333;
}
a.list-group-item:hover,
button.list-group-item:hover,
a.list-group-item:focus,
button.list-group-item:focus {
  text-decoration: none;
  color: #555;
  background-color: #f5f5f5;
}
button.list-group-item {
  width: 100%;
  text-align: left;
}
.list-group-item.disabled,
.list-group-item.disabled:hover,
.list-group-item.disabled:focus {
  background-color: #eeeeee;
  color: #777777;
  cursor: not-allowed;
}
.list-group-item.disabled .list-group-item-heading,
.list-group-item.disabled:hover .list-group-item-heading,
.list-group-item.disabled:focus .list-group-item-heading {
  color: inherit;
}
.list-group-item.disabled .list-group-item-text,
.list-group-item.disabled:hover .list-group-item-text,
.list-group-item.disabled:focus .list-group-item-text {
  color: #777777;
}
.list-group-item.active,
.list-group-item.active:hover,
.list-group-item.active:focus {
  z-index: 2;
  color: #fff;
  background-color: #337ab7;
  border-color: #337ab7;
}
.list-group-item.active .list-group-item-heading,
.list-group-item.active:hover .list-group-item-heading,
.list-group-item.active:focus .list-group-item-heading,
.list-group-item.active .list-group-item-heading > small,
.list-group-item.active:hover .list-group-item-heading > small,
.list-group-item.active:focus .list-group-item-heading > small,
.list-group-item.active .list-group-item-heading > .small,
.list-group-item.active:hover .list-group-item-heading > .small,
.list-group-item.active:focus .list-group-item-heading > .small {
  color: inherit;
}
.list-group-item.active .list-group-item-text,
.list-group-item.active:hover .list-group-item-text,
.list-group-item.active:focus .list-group-item-text {
  color: #c7ddef;
}
.list-group-item-success {
  color: #3c763d;
  background-color: #dff0d8;
}
a.list-group-item-success,
button.list-group-item-success {
  color: #3c763d;
}
a.list-group-item-success .list-group-item-heading,
button.list-group-item-success .list-group-item-heading {
  color: inherit;
}
a.list-group-item-success:hover,
button.list-group-item-success:hover,
a.list-group-item-success:focus,
button.list-group-item-success:focus {
  color: #3c763d;
  background-color: #d0e9c6;
}
a.list-group-item-success.active,
button.list-group-item-success.active,
a.list-group-item-success.active:hover,
button.list-group-item-success.active:hover,
a.list-group-item-success.active:focus,
button.list-group-item-success.active:focus {
  color: #fff;
  background-color: #3c763d;
  border-color: #3c763d;
}
.list-group-item-info {
  color: #31708f;
  background-color: #d9edf7;
}
a.list-group-item-info,
button.list-group-item-info {
  color: #31708f;
}
a.list-group-item-info .list-group-item-heading,
button.list-group-item-info .list-group-item-heading {
  color: inherit;
}
a.list-group-item-info:hover,
button.list-group-item-info:hover,
a.list-group-item-info:focus,
button.list-group-item-info:focus {
  color: #31708f;
  background-color: #c4e3f3;
}
a.list-group-item-info.active,
button.list-group-item-info.active,
a.list-group-item-info.active:hover,
button.list-group-item-info.active:hover,
a.list-group-item-info.active:focus,
button.list-group-item-info.active:focus {
  color: #fff;
  background-color: #31708f;
  border-color: #31708f;
}
.list-group-item-warning {
  color: #8a6d3b;
  background-color: #fcf8e3;
}
a.list-group-item-warning,
button.list-group-item-warning {
  color: #8a6d3b;
}
a.list-group-item-warning .list-group-item-heading,
button.list-group-item-warning .list-group-item-heading {
  color: inherit;
}
a.list-group-item-warning:hover,
button.list-group-item-warning:hover,
a.list-group-item-warning:focus,
button.list-group-item-warning:focus {
  color: #8a6d3b;
  background-color: #faf2cc;
}
a.list-group-item-warning.active,
button.list-group-item-warning.active,
a.list-group-item-warning.active:hover,
button.list-group-item-warning.active:hover,
a.list-group-item-warning.active:focus,
button.list-group-item-warning.active:focus {
  color: #fff;
  background-color: #8a6d3b;
  border-color: #8a6d3b;
}
.list-group-item-danger {
  color: #a94442;
  background-color: #f2dede;
}
a.list-group-item-danger,
button.list-group-item-danger {
  color: #a94442;
}
a.list-group-item-danger .list-group-item-heading,
button.list-group-item-danger .list-group-item-heading {
  color: inherit;
}
a.list-group-item-danger:hover,
button.list-group-item-danger:hover,
a.list-group-item-danger:focus,
button.list-group-item-danger:focus {
  color: #a94442;
  background-color: #ebcccc;
}
a.list-group-item-danger.active,
button.list-group-item-danger.active,
a.list-group-item-danger.active:hover,
button.list-group-item-danger.active:hover,
a.list-group-item-danger.active:focus,
button.list-group-item-danger.active:focus {
  color: #fff;
  background-color: #a94442;
  border-color: #a94442;
}
.list-group-item-heading {
  margin-top: 0;
  margin-bottom: 5px;
}
.list-group-item-text {
  margin-bottom: 0;
  line-height: 1.3;
}
.panel {
  margin-bottom: 18px;
  background-color: #fff;
  border: 1px solid transparent;
  border-radius: 2px;
  -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
}
.panel-body {
  padding: 15px;
}
.panel-heading {
  padding: 10px 15px;
  border-bottom: 1px solid transparent;
  border-top-right-radius: 1px;
  border-top-left-radius: 1px;
}
.panel-heading > .dropdown .dropdown-toggle {
  color: inherit;
}
.panel-title {
  margin-top: 0;
  margin-bottom: 0;
  font-size: 15px;
  color: inherit;
}
.panel-title > a,
.panel-title > small,
.panel-title > .small,
.panel-title > small > a,
.panel-title > .small > a {
  color: inherit;
}
.panel-footer {
  padding: 10px 15px;
  background-color: #f5f5f5;
  border-top: 1px solid #ddd;
  border-bottom-right-radius: 1px;
  border-bottom-left-radius: 1px;
}
.panel > .list-group,
.panel > .panel-collapse > .list-group {
  margin-bottom: 0;
}
.panel > .list-group .list-group-item,
.panel > .panel-collapse > .list-group .list-group-item {
  border-width: 1px 0;
  border-radius: 0;
}
.panel > .list-group:first-child .list-group-item:first-child,
.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {
  border-top: 0;
  border-top-right-radius: 1px;
  border-top-left-radius: 1px;
}
.panel > .list-group:last-child .list-group-item:last-child,
.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {
  border-bottom: 0;
  border-bottom-right-radius: 1px;
  border-bottom-left-radius: 1px;
}
.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {
  border-top-right-radius: 0;
  border-top-left-radius: 0;
}
.panel-heading + .list-group .list-group-item:first-child {
  border-top-width: 0;
}
.list-group + .panel-footer {
  border-top-width: 0;
}
.panel > .table,
.panel > .table-responsive > .table,
.panel > .panel-collapse > .table {
  margin-bottom: 0;
}
.panel > .table caption,
.panel > .table-responsive > .table caption,
.panel > .panel-collapse > .table caption {
  padding-left: 15px;
  padding-right: 15px;
}
.panel > .table:first-child,
.panel > .table-responsive:first-child > .table:first-child {
  border-top-right-radius: 1px;
  border-top-left-radius: 1px;
}
.panel > .table:first-child > thead:first-child > tr:first-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,
.panel > .table:first-child > tbody:first-child > tr:first-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {
  border-top-left-radius: 1px;
  border-top-right-radius: 1px;
}
.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,
.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,
.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,
.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {
  border-top-left-radius: 1px;
}
.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,
.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,
.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,
.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {
  border-top-right-radius: 1px;
}
.panel > .table:last-child,
.panel > .table-responsive:last-child > .table:last-child {
  border-bottom-right-radius: 1px;
  border-bottom-left-radius: 1px;
}
.panel > .table:last-child > tbody:last-child > tr:last-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {
  border-bottom-left-radius: 1px;
  border-bottom-right-radius: 1px;
}
.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {
  border-bottom-left-radius: 1px;
}
.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {
  border-bottom-right-radius: 1px;
}
.panel > .panel-body + .table,
.panel > .panel-body + .table-responsive,
.panel > .table + .panel-body,
.panel > .table-responsive + .panel-body {
  border-top: 1px solid #ddd;
}
.panel > .table > tbody:first-child > tr:first-child th,
.panel > .table > tbody:first-child > tr:first-child td {
  border-top: 0;
}
.panel > .table-bordered,
.panel > .table-responsive > .table-bordered {
  border: 0;
}
.panel > .table-bordered > thead > tr > th:first-child,
.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,
.panel > .table-bordered > tbody > tr > th:first-child,
.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,
.panel > .table-bordered > tfoot > tr > th:first-child,
.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,
.panel > .table-bordered > thead > tr > td:first-child,
.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,
.panel > .table-bordered > tbody > tr > td:first-child,
.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,
.panel > .table-bordered > tfoot > tr > td:first-child,
.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {
  border-left: 0;
}
.panel > .table-bordered > thead > tr > th:last-child,
.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,
.panel > .table-bordered > tbody > tr > th:last-child,
.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,
.panel > .table-bordered > tfoot > tr > th:last-child,
.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,
.panel > .table-bordered > thead > tr > td:last-child,
.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,
.panel > .table-bordered > tbody > tr > td:last-child,
.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,
.panel > .table-bordered > tfoot > tr > td:last-child,
.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {
  border-right: 0;
}
.panel > .table-bordered > thead > tr:first-child > td,
.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,
.panel > .table-bordered > tbody > tr:first-child > td,
.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,
.panel > .table-bordered > thead > tr:first-child > th,
.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,
.panel > .table-bordered > tbody > tr:first-child > th,
.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {
  border-bottom: 0;
}
.panel > .table-bordered > tbody > tr:last-child > td,
.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,
.panel > .table-bordered > tfoot > tr:last-child > td,
.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,
.panel > .table-bordered > tbody > tr:last-child > th,
.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,
.panel > .table-bordered > tfoot > tr:last-child > th,
.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {
  border-bottom: 0;
}
.panel > .table-responsive {
  border: 0;
  margin-bottom: 0;
}
.panel-group {
  margin-bottom: 18px;
}
.panel-group .panel {
  margin-bottom: 0;
  border-radius: 2px;
}
.panel-group .panel + .panel {
  margin-top: 5px;
}
.panel-group .panel-heading {
  border-bottom: 0;
}
.panel-group .panel-heading + .panel-collapse > .panel-body,
.panel-group .panel-heading + .panel-collapse > .list-group {
  border-top: 1px solid #ddd;
}
.panel-group .panel-footer {
  border-top: 0;
}
.panel-group .panel-footer + .panel-collapse .panel-body {
  border-bottom: 1px solid #ddd;
}
.panel-default {
  border-color: #ddd;
}
.panel-default > .panel-heading {
  color: #333333;
  background-color: #f5f5f5;
  border-color: #ddd;
}
.panel-default > .panel-heading + .panel-collapse > .panel-body {
  border-top-color: #ddd;
}
.panel-default > .panel-heading .badge {
  color: #f5f5f5;
  background-color: #333333;
}
.panel-default > .panel-footer + .panel-collapse > .panel-body {
  border-bottom-color: #ddd;
}
.panel-primary {
  border-color: #337ab7;
}
.panel-primary > .panel-heading {
  color: #fff;
  background-color: #337ab7;
  border-color: #337ab7;
}
.panel-primary > .panel-heading + .panel-collapse > .panel-body {
  border-top-color: #337ab7;
}
.panel-primary > .panel-heading .badge {
  color: #337ab7;
  background-color: #fff;
}
.panel-primary > .panel-footer + .panel-collapse > .panel-body {
  border-bottom-color: #337ab7;
}
.panel-success {
  border-color: #d6e9c6;
}
.panel-success > .panel-heading {
  color: #3c763d;
  background-color: #dff0d8;
  border-color: #d6e9c6;
}
.panel-success > .panel-heading + .panel-collapse > .panel-body {
  border-top-color: #d6e9c6;
}
.panel-success > .panel-heading .badge {
  color: #dff0d8;
  background-color: #3c763d;
}
.panel-success > .panel-footer + .panel-collapse > .panel-body {
  border-bottom-color: #d6e9c6;
}
.panel-info {
  border-color: #bce8f1;
}
.panel-info > .panel-heading {
  color: #31708f;
  background-color: #d9edf7;
  border-color: #bce8f1;
}
.panel-info > .panel-heading + .panel-collapse > .panel-body {
  border-top-color: #bce8f1;
}
.panel-info > .panel-heading .badge {
  color: #d9edf7;
  background-color: #31708f;
}
.panel-info > .panel-footer + .panel-collapse > .panel-body {
  border-bottom-color: #bce8f1;
}
.panel-warning {
  border-color: #faebcc;
}
.panel-warning > .panel-heading {
  color: #8a6d3b;
  background-color: #fcf8e3;
  border-color: #faebcc;
}
.panel-warning > .panel-heading + .panel-collapse > .panel-body {
  border-top-color: #faebcc;
}
.panel-warning > .panel-heading .badge {
  color: #fcf8e3;
  background-color: #8a6d3b;
}
.panel-warning > .panel-footer + .panel-collapse > .panel-body {
  border-bottom-color: #faebcc;
}
.panel-danger {
  border-color: #ebccd1;
}
.panel-danger > .panel-heading {
  color: #a94442;
  background-color: #f2dede;
  border-color: #ebccd1;
}
.panel-danger > .panel-heading + .panel-collapse > .panel-body {
  border-top-color: #ebccd1;
}
.panel-danger > .panel-heading .badge {
  color: #f2dede;
  background-color: #a94442;
}
.panel-danger > .panel-footer + .panel-collapse > .panel-body {
  border-bottom-color: #ebccd1;
}
.embed-responsive {
  position: relative;
  display: block;
  height: 0;
  padding: 0;
  overflow: hidden;
}
.embed-responsive .embed-responsive-item,
.embed-responsive iframe,
.embed-responsive embed,
.embed-responsive object,
.embed-responsive video {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  height: 100%;
  width: 100%;
  border: 0;
}
.embed-responsive-16by9 {
  padding-bottom: 56.25%;
}
.embed-responsive-4by3 {
  padding-bottom: 75%;
}
.well {
  min-height: 20px;
  padding: 19px;
  margin-bottom: 20px;
  background-color: #f5f5f5;
  border: 1px solid #e3e3e3;
  border-radius: 2px;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
}
.well blockquote {
  border-color: #ddd;
  border-color: rgba(0, 0, 0, 0.15);
}
.well-lg {
  padding: 24px;
  border-radius: 3px;
}
.well-sm {
  padding: 9px;
  border-radius: 1px;
}
.close {
  float: right;
  font-size: 19.5px;
  font-weight: bold;
  line-height: 1;
  color: #000;
  text-shadow: 0 1px 0 #fff;
  opacity: 0.2;
  filter: alpha(opacity=20);
}
.close:hover,
.close:focus {
  color: #000;
  text-decoration: none;
  cursor: pointer;
  opacity: 0.5;
  filter: alpha(opacity=50);
}
button.close {
  padding: 0;
  cursor: pointer;
  background: transparent;
  border: 0;
  -webkit-appearance: none;
}
.modal-open {
  overflow: hidden;
}
.modal {
  display: none;
  overflow: hidden;
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1050;
  -webkit-overflow-scrolling: touch;
  outline: 0;
}
.modal.fade .modal-dialog {
  -webkit-transform: translate(0, -25%);
  -ms-transform: translate(0, -25%);
  -o-transform: translate(0, -25%);
  transform: translate(0, -25%);
  -webkit-transition: -webkit-transform 0.3s ease-out;
  -moz-transition: -moz-transform 0.3s ease-out;
  -o-transition: -o-transform 0.3s ease-out;
  transition: transform 0.3s ease-out;
}
.modal.in .modal-dialog {
  -webkit-transform: translate(0, 0);
  -ms-transform: translate(0, 0);
  -o-transform: translate(0, 0);
  transform: translate(0, 0);
}
.modal-open .modal {
  overflow-x: hidden;
  overflow-y: auto;
}
.modal-dialog {
  position: relative;
  width: auto;
  margin: 10px;
}
.modal-content {
  position: relative;
  background-color: #fff;
  border: 1px solid #999;
  border: 1px solid rgba(0, 0, 0, 0.2);
  border-radius: 3px;
  -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
  box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
  background-clip: padding-box;
  outline: 0;
}
.modal-backdrop {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1040;
  background-color: #000;
}
.modal-backdrop.fade {
  opacity: 0;
  filter: alpha(opacity=0);
}
.modal-backdrop.in {
  opacity: 0.5;
  filter: alpha(opacity=50);
}
.modal-header {
  padding: 15px;
  border-bottom: 1px solid #e5e5e5;
}
.modal-header .close {
  margin-top: -2px;
}
.modal-title {
  margin: 0;
  line-height: 1.42857143;
}
.modal-body {
  position: relative;
  padding: 15px;
}
.modal-footer {
  padding: 15px;
  text-align: right;
  border-top: 1px solid #e5e5e5;
}
.modal-footer .btn + .btn {
  margin-left: 5px;
  margin-bottom: 0;
}
.modal-footer .btn-group .btn + .btn {
  margin-left: -1px;
}
.modal-footer .btn-block + .btn-block {
  margin-left: 0;
}
.modal-scrollbar-measure {
  position: absolute;
  top: -9999px;
  width: 50px;
  height: 50px;
  overflow: scroll;
}
@media (min-width: 768px) {
  .modal-dialog {
    width: 600px;
    margin: 30px auto;
  }
  .modal-content {
    -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
  }
  .modal-sm {
    width: 300px;
  }
}
@media (min-width: 992px) {
  .modal-lg {
    width: 900px;
  }
}
.tooltip {
  position: absolute;
  z-index: 1070;
  display: block;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-style: normal;
  font-weight: normal;
  letter-spacing: normal;
  line-break: auto;
  line-height: 1.42857143;
  text-align: left;
  text-align: start;
  text-decoration: none;
  text-shadow: none;
  text-transform: none;
  white-space: normal;
  word-break: normal;
  word-spacing: normal;
  word-wrap: normal;
  font-size: 12px;
  opacity: 0;
  filter: alpha(opacity=0);
}
.tooltip.in {
  opacity: 0.9;
  filter: alpha(opacity=90);
}
.tooltip.top {
  margin-top: -3px;
  padding: 5px 0;
}
.tooltip.right {
  margin-left: 3px;
  padding: 0 5px;
}
.tooltip.bottom {
  margin-top: 3px;
  padding: 5px 0;
}
.tooltip.left {
  margin-left: -3px;
  padding: 0 5px;
}
.tooltip-inner {
  max-width: 200px;
  padding: 3px 8px;
  color: #fff;
  text-align: center;
  background-color: #000;
  border-radius: 2px;
}
.tooltip-arrow {
  position: absolute;
  width: 0;
  height: 0;
  border-color: transparent;
  border-style: solid;
}
.tooltip.top .tooltip-arrow {
  bottom: 0;
  left: 50%;
  margin-left: -5px;
  border-width: 5px 5px 0;
  border-top-color: #000;
}
.tooltip.top-left .tooltip-arrow {
  bottom: 0;
  right: 5px;
  margin-bottom: -5px;
  border-width: 5px 5px 0;
  border-top-color: #000;
}
.tooltip.top-right .tooltip-arrow {
  bottom: 0;
  left: 5px;
  margin-bottom: -5px;
  border-width: 5px 5px 0;
  border-top-color: #000;
}
.tooltip.right .tooltip-arrow {
  top: 50%;
  left: 0;
  margin-top: -5px;
  border-width: 5px 5px 5px 0;
  border-right-color: #000;
}
.tooltip.left .tooltip-arrow {
  top: 50%;
  right: 0;
  margin-top: -5px;
  border-width: 5px 0 5px 5px;
  border-left-color: #000;
}
.tooltip.bottom .tooltip-arrow {
  top: 0;
  left: 50%;
  margin-left: -5px;
  border-width: 0 5px 5px;
  border-bottom-color: #000;
}
.tooltip.bottom-left .tooltip-arrow {
  top: 0;
  right: 5px;
  margin-top: -5px;
  border-width: 0 5px 5px;
  border-bottom-color: #000;
}
.tooltip.bottom-right .tooltip-arrow {
  top: 0;
  left: 5px;
  margin-top: -5px;
  border-width: 0 5px 5px;
  border-bottom-color: #000;
}
.popover {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1060;
  display: none;
  max-width: 276px;
  padding: 1px;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-style: normal;
  font-weight: normal;
  letter-spacing: normal;
  line-break: auto;
  line-height: 1.42857143;
  text-align: left;
  text-align: start;
  text-decoration: none;
  text-shadow: none;
  text-transform: none;
  white-space: normal;
  word-break: normal;
  word-spacing: normal;
  word-wrap: normal;
  font-size: 13px;
  background-color: #fff;
  background-clip: padding-box;
  border: 1px solid #ccc;
  border: 1px solid rgba(0, 0, 0, 0.2);
  border-radius: 3px;
  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
}
.popover.top {
  margin-top: -10px;
}
.popover.right {
  margin-left: 10px;
}
.popover.bottom {
  margin-top: 10px;
}
.popover.left {
  margin-left: -10px;
}
.popover-title {
  margin: 0;
  padding: 8px 14px;
  font-size: 13px;
  background-color: #f7f7f7;
  border-bottom: 1px solid #ebebeb;
  border-radius: 2px 2px 0 0;
}
.popover-content {
  padding: 9px 14px;
}
.popover > .arrow,
.popover > .arrow:after {
  position: absolute;
  display: block;
  width: 0;
  height: 0;
  border-color: transparent;
  border-style: solid;
}
.popover > .arrow {
  border-width: 11px;
}
.popover > .arrow:after {
  border-width: 10px;
  content: "";
}
.popover.top > .arrow {
  left: 50%;
  margin-left: -11px;
  border-bottom-width: 0;
  border-top-color: #999999;
  border-top-color: rgba(0, 0, 0, 0.25);
  bottom: -11px;
}
.popover.top > .arrow:after {
  content: " ";
  bottom: 1px;
  margin-left: -10px;
  border-bottom-width: 0;
  border-top-color: #fff;
}
.popover.right > .arrow {
  top: 50%;
  left: -11px;
  margin-top: -11px;
  border-left-width: 0;
  border-right-color: #999999;
  border-right-color: rgba(0, 0, 0, 0.25);
}
.popover.right > .arrow:after {
  content: " ";
  left: 1px;
  bottom: -10px;
  border-left-width: 0;
  border-right-color: #fff;
}
.popover.bottom > .arrow {
  left: 50%;
  margin-left: -11px;
  border-top-width: 0;
  border-bottom-color: #999999;
  border-bottom-color: rgba(0, 0, 0, 0.25);
  top: -11px;
}
.popover.bottom > .arrow:after {
  content: " ";
  top: 1px;
  margin-left: -10px;
  border-top-width: 0;
  border-bottom-color: #fff;
}
.popover.left > .arrow {
  top: 50%;
  right: -11px;
  margin-top: -11px;
  border-right-width: 0;
  border-left-color: #999999;
  border-left-color: rgba(0, 0, 0, 0.25);
}
.popover.left > .arrow:after {
  content: " ";
  right: 1px;
  border-right-width: 0;
  border-left-color: #fff;
  bottom: -10px;
}
.carousel {
  position: relative;
}
.carousel-inner {
  position: relative;
  overflow: hidden;
  width: 100%;
}
.carousel-inner > .item {
  display: none;
  position: relative;
  -webkit-transition: 0.6s ease-in-out left;
  -o-transition: 0.6s ease-in-out left;
  transition: 0.6s ease-in-out left;
}
.carousel-inner > .item > img,
.carousel-inner > .item > a > img {
  line-height: 1;
}
@media all and (transform-3d), (-webkit-transform-3d) {
  .carousel-inner > .item {
    -webkit-transition: -webkit-transform 0.6s ease-in-out;
    -moz-transition: -moz-transform 0.6s ease-in-out;
    -o-transition: -o-transform 0.6s ease-in-out;
    transition: transform 0.6s ease-in-out;
    -webkit-backface-visibility: hidden;
    -moz-backface-visibility: hidden;
    backface-visibility: hidden;
    -webkit-perspective: 1000px;
    -moz-perspective: 1000px;
    perspective: 1000px;
  }
  .carousel-inner > .item.next,
  .carousel-inner > .item.active.right {
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
    left: 0;
  }
  .carousel-inner > .item.prev,
  .carousel-inner > .item.active.left {
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
    left: 0;
  }
  .carousel-inner > .item.next.left,
  .carousel-inner > .item.prev.right,
  .carousel-inner > .item.active {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    left: 0;
  }
}
.carousel-inner > .active,
.carousel-inner > .next,
.carousel-inner > .prev {
  display: block;
}
.carousel-inner > .active {
  left: 0;
}
.carousel-inner > .next,
.carousel-inner > .prev {
  position: absolute;
  top: 0;
  width: 100%;
}
.carousel-inner > .next {
  left: 100%;
}
.carousel-inner > .prev {
  left: -100%;
}
.carousel-inner > .next.left,
.carousel-inner > .prev.right {
  left: 0;
}
.carousel-inner > .active.left {
  left: -100%;
}
.carousel-inner > .active.right {
  left: 100%;
}
.carousel-control {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  width: 15%;
  opacity: 0.5;
  filter: alpha(opacity=50);
  font-size: 20px;
  color: #fff;
  text-align: center;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
  background-color: rgba(0, 0, 0, 0);
}
.carousel-control.left {
  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
  background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);
}
.carousel-control.right {
  left: auto;
  right: 0;
  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
  background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);
}
.carousel-control:hover,
.carousel-control:focus {
  outline: 0;
  color: #fff;
  text-decoration: none;
  opacity: 0.9;
  filter: alpha(opacity=90);
}
.carousel-control .icon-prev,
.carousel-control .icon-next,
.carousel-control .glyphicon-chevron-left,
.carousel-control .glyphicon-chevron-right {
  position: absolute;
  top: 50%;
  margin-top: -10px;
  z-index: 5;
  display: inline-block;
}
.carousel-control .icon-prev,
.carousel-control .glyphicon-chevron-left {
  left: 50%;
  margin-left: -10px;
}
.carousel-control .icon-next,
.carousel-control .glyphicon-chevron-right {
  right: 50%;
  margin-right: -10px;
}
.carousel-control .icon-prev,
.carousel-control .icon-next {
  width: 20px;
  height: 20px;
  line-height: 1;
  font-family: serif;
}
.carousel-control .icon-prev:before {
  content: '\2039';
}
.carousel-control .icon-next:before {
  content: '\203a';
}
.carousel-indicators {
  position: absolute;
  bottom: 10px;
  left: 50%;
  z-index: 15;
  width: 60%;
  margin-left: -30%;
  padding-left: 0;
  list-style: none;
  text-align: center;
}
.carousel-indicators li {
  display: inline-block;
  width: 10px;
  height: 10px;
  margin: 1px;
  text-indent: -999px;
  border: 1px solid #fff;
  border-radius: 10px;
  cursor: pointer;
  background-color: #000 \9;
  background-color: rgba(0, 0, 0, 0);
}
.carousel-indicators .active {
  margin: 0;
  width: 12px;
  height: 12px;
  background-color: #fff;
}
.carousel-caption {
  position: absolute;
  left: 15%;
  right: 15%;
  bottom: 20px;
  z-index: 10;
  padding-top: 20px;
  padding-bottom: 20px;
  color: #fff;
  text-align: center;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
}
.carousel-caption .btn {
  text-shadow: none;
}
@media screen and (min-width: 768px) {
  .carousel-control .glyphicon-chevron-left,
  .carousel-control .glyphicon-chevron-right,
  .carousel-control .icon-prev,
  .carousel-control .icon-next {
    width: 30px;
    height: 30px;
    margin-top: -10px;
    font-size: 30px;
  }
  .carousel-control .glyphicon-chevron-left,
  .carousel-control .icon-prev {
    margin-left: -10px;
  }
  .carousel-control .glyphicon-chevron-right,
  .carousel-control .icon-next {
    margin-right: -10px;
  }
  .carousel-caption {
    left: 20%;
    right: 20%;
    padding-bottom: 30px;
  }
  .carousel-indicators {
    bottom: 20px;
  }
}
.clearfix:before,
.clearfix:after,
.dl-horizontal dd:before,
.dl-horizontal dd:after,
.container:before,
.container:after,
.container-fluid:before,
.container-fluid:after,
.row:before,
.row:after,
.form-horizontal .form-group:before,
.form-horizontal .form-group:after,
.btn-toolbar:before,
.btn-toolbar:after,
.btn-group-vertical > .btn-group:before,
.btn-group-vertical > .btn-group:after,
.nav:before,
.nav:after,
.navbar:before,
.navbar:after,
.navbar-header:before,
.navbar-header:after,
.navbar-collapse:before,
.navbar-collapse:after,
.pager:before,
.pager:after,
.panel-body:before,
.panel-body:after,
.modal-header:before,
.modal-header:after,
.modal-footer:before,
.modal-footer:after,
.item_buttons:before,
.item_buttons:after {
  content: " ";
  display: table;
}
.clearfix:after,
.dl-horizontal dd:after,
.container:after,
.container-fluid:after,
.row:after,
.form-horizontal .form-group:after,
.btn-toolbar:after,
.btn-group-vertical > .btn-group:after,
.nav:after,
.navbar:after,
.navbar-header:after,
.navbar-collapse:after,
.pager:after,
.panel-body:after,
.modal-header:after,
.modal-footer:after,
.item_buttons:after {
  clear: both;
}
.center-block {
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.pull-right {
  float: right !important;
}
.pull-left {
  float: left !important;
}
.hide {
  display: none !important;
}
.show {
  display: block !important;
}
.invisible {
  visibility: hidden;
}
.text-hide {
  font: 0/0 a;
  color: transparent;
  text-shadow: none;
  background-color: transparent;
  border: 0;
}
.hidden {
  display: none !important;
}
.affix {
  position: fixed;
}
@-ms-viewport {
  width: device-width;
}
.visible-xs,
.visible-sm,
.visible-md,
.visible-lg {
  display: none !important;
}
.visible-xs-block,
.visible-xs-inline,
.visible-xs-inline-block,
.visible-sm-block,
.visible-sm-inline,
.visible-sm-inline-block,
.visible-md-block,
.visible-md-inline,
.visible-md-inline-block,
.visible-lg-block,
.visible-lg-inline,
.visible-lg-inline-block {
  display: none !important;
}
@media (max-width: 767px) {
  .visible-xs {
    display: block !important;
  }
  table.visible-xs {
    display: table !important;
  }
  tr.visible-xs {
    display: table-row !important;
  }
  th.visible-xs,
  td.visible-xs {
    display: table-cell !important;
  }
}
@media (max-width: 767px) {
  .visible-xs-block {
    display: block !important;
  }
}
@media (max-width: 767px) {
  .visible-xs-inline {
    display: inline !important;
  }
}
@media (max-width: 767px) {
  .visible-xs-inline-block {
    display: inline-block !important;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .visible-sm {
    display: block !important;
  }
  table.visible-sm {
    display: table !important;
  }
  tr.visible-sm {
    display: table-row !important;
  }
  th.visible-sm,
  td.visible-sm {
    display: table-cell !important;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .visible-sm-block {
    display: block !important;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .visible-sm-inline {
    display: inline !important;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .visible-sm-inline-block {
    display: inline-block !important;
  }
}
@media (min-width: 992px) and (max-width: 1199px) {
  .visible-md {
    display: block !important;
  }
  table.visible-md {
    display: table !important;
  }
  tr.visible-md {
    display: table-row !important;
  }
  th.visible-md,
  td.visible-md {
    display: table-cell !important;
  }
}
@media (min-width: 992px) and (max-width: 1199px) {
  .visible-md-block {
    display: block !important;
  }
}
@media (min-width: 992px) and (max-width: 1199px) {
  .visible-md-inline {
    display: inline !important;
  }
}
@media (min-width: 992px) and (max-width: 1199px) {
  .visible-md-inline-block {
    display: inline-block !important;
  }
}
@media (min-width: 1200px) {
  .visible-lg {
    display: block !important;
  }
  table.visible-lg {
    display: table !important;
  }
  tr.visible-lg {
    display: table-row !important;
  }
  th.visible-lg,
  td.visible-lg {
    display: table-cell !important;
  }
}
@media (min-width: 1200px) {
  .visible-lg-block {
    display: block !important;
  }
}
@media (min-width: 1200px) {
  .visible-lg-inline {
    display: inline !important;
  }
}
@media (min-width: 1200px) {
  .visible-lg-inline-block {
    display: inline-block !important;
  }
}
@media (max-width: 767px) {
  .hidden-xs {
    display: none !important;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .hidden-sm {
    display: none !important;
  }
}
@media (min-width: 992px) and (max-width: 1199px) {
  .hidden-md {
    display: none !important;
  }
}
@media (min-width: 1200px) {
  .hidden-lg {
    display: none !important;
  }
}
.visible-print {
  display: none !important;
}
@media print {
  .visible-print {
    display: block !important;
  }
  table.visible-print {
    display: table !important;
  }
  tr.visible-print {
    display: table-row !important;
  }
  th.visible-print,
  td.visible-print {
    display: table-cell !important;
  }
}
.visible-print-block {
  display: none !important;
}
@media print {
  .visible-print-block {
    display: block !important;
  }
}
.visible-print-inline {
  display: none !important;
}
@media print {
  .visible-print-inline {
    display: inline !important;
  }
}
.visible-print-inline-block {
  display: none !important;
}
@media print {
  .visible-print-inline-block {
    display: inline-block !important;
  }
}
@media print {
  .hidden-print {
    display: none !important;
  }
}
/*!
*
* Font Awesome
*
*/
/*!
 *  Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome
 *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
 */
/* FONT PATH
 * -------------------------- */
@font-face {
  font-family: 'FontAwesome';
  src: url('../components/font-awesome/fonts/fontawesome-webfont.eot?v=4.2.0');
  src: url('../components/font-awesome/fonts/fontawesome-webfont.eot?#iefix&v=4.2.0') format('embedded-opentype'), url('../components/font-awesome/fonts/fontawesome-webfont.woff?v=4.2.0') format('woff'), url('../components/font-awesome/fonts/fontawesome-webfont.ttf?v=4.2.0') format('truetype'), url('../components/font-awesome/fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular') format('svg');
  font-weight: normal;
  font-style: normal;
}
.fa {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
/* makes the font 33% larger relative to the icon container */
.fa-lg {
  font-size: 1.33333333em;
  line-height: 0.75em;
  vertical-align: -15%;
}
.fa-2x {
  font-size: 2em;
}
.fa-3x {
  font-size: 3em;
}
.fa-4x {
  font-size: 4em;
}
.fa-5x {
  font-size: 5em;
}
.fa-fw {
  width: 1.28571429em;
  text-align: center;
}
.fa-ul {
  padding-left: 0;
  margin-left: 2.14285714em;
  list-style-type: none;
}
.fa-ul > li {
  position: relative;
}
.fa-li {
  position: absolute;
  left: -2.14285714em;
  width: 2.14285714em;
  top: 0.14285714em;
  text-align: center;
}
.fa-li.fa-lg {
  left: -1.85714286em;
}
.fa-border {
  padding: .2em .25em .15em;
  border: solid 0.08em #eee;
  border-radius: .1em;
}
.pull-right {
  float: right;
}
.pull-left {
  float: left;
}
.fa.pull-left {
  margin-right: .3em;
}
.fa.pull-right {
  margin-left: .3em;
}
.fa-spin {
  -webkit-animation: fa-spin 2s infinite linear;
  animation: fa-spin 2s infinite linear;
}
@-webkit-keyframes fa-spin {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(359deg);
    transform: rotate(359deg);
  }
}
@keyframes fa-spin {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(359deg);
    transform: rotate(359deg);
  }
}
.fa-rotate-90 {
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
  -webkit-transform: rotate(90deg);
  -ms-transform: rotate(90deg);
  transform: rotate(90deg);
}
.fa-rotate-180 {
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
  -webkit-transform: rotate(180deg);
  -ms-transform: rotate(180deg);
  transform: rotate(180deg);
}
.fa-rotate-270 {
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
  -webkit-transform: rotate(270deg);
  -ms-transform: rotate(270deg);
  transform: rotate(270deg);
}
.fa-flip-horizontal {
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);
  -webkit-transform: scale(-1, 1);
  -ms-transform: scale(-1, 1);
  transform: scale(-1, 1);
}
.fa-flip-vertical {
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);
  -webkit-transform: scale(1, -1);
  -ms-transform: scale(1, -1);
  transform: scale(1, -1);
}
:root .fa-rotate-90,
:root .fa-rotate-180,
:root .fa-rotate-270,
:root .fa-flip-horizontal,
:root .fa-flip-vertical {
  filter: none;
}
.fa-stack {
  position: relative;
  display: inline-block;
  width: 2em;
  height: 2em;
  line-height: 2em;
  vertical-align: middle;
}
.fa-stack-1x,
.fa-stack-2x {
  position: absolute;
  left: 0;
  width: 100%;
  text-align: center;
}
.fa-stack-1x {
  line-height: inherit;
}
.fa-stack-2x {
  font-size: 2em;
}
.fa-inverse {
  color: #fff;
}
/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
   readers do not read off random characters that represent icons */
.fa-glass:before {
  content: "\f000";
}
.fa-music:before {
  content: "\f001";
}
.fa-search:before {
  content: "\f002";
}
.fa-envelope-o:before {
  content: "\f003";
}
.fa-heart:before {
  content: "\f004";
}
.fa-star:before {
  content: "\f005";
}
.fa-star-o:before {
  content: "\f006";
}
.fa-user:before {
  content: "\f007";
}
.fa-film:before {
  content: "\f008";
}
.fa-th-large:before {
  content: "\f009";
}
.fa-th:before {
  content: "\f00a";
}
.fa-th-list:before {
  content: "\f00b";
}
.fa-check:before {
  content: "\f00c";
}
.fa-remove:before,
.fa-close:before,
.fa-times:before {
  content: "\f00d";
}
.fa-search-plus:before {
  content: "\f00e";
}
.fa-search-minus:before {
  content: "\f010";
}
.fa-power-off:before {
  content: "\f011";
}
.fa-signal:before {
  content: "\f012";
}
.fa-gear:before,
.fa-cog:before {
  content: "\f013";
}
.fa-trash-o:before {
  content: "\f014";
}
.fa-home:before {
  content: "\f015";
}
.fa-file-o:before {
  content: "\f016";
}
.fa-clock-o:before {
  content: "\f017";
}
.fa-road:before {
  content: "\f018";
}
.fa-download:before {
  content: "\f019";
}
.fa-arrow-circle-o-down:before {
  content: "\f01a";
}
.fa-arrow-circle-o-up:before {
  content: "\f01b";
}
.fa-inbox:before {
  content: "\f01c";
}
.fa-play-circle-o:before {
  content: "\f01d";
}
.fa-rotate-right:before,
.fa-repeat:before {
  content: "\f01e";
}
.fa-refresh:before {
  content: "\f021";
}
.fa-list-alt:before {
  content: "\f022";
}
.fa-lock:before {
  content: "\f023";
}
.fa-flag:before {
  content: "\f024";
}
.fa-headphones:before {
  content: "\f025";
}
.fa-volume-off:before {
  content: "\f026";
}
.fa-volume-down:before {
  content: "\f027";
}
.fa-volume-up:before {
  content: "\f028";
}
.fa-qrcode:before {
  content: "\f029";
}
.fa-barcode:before {
  content: "\f02a";
}
.fa-tag:before {
  content: "\f02b";
}
.fa-tags:before {
  content: "\f02c";
}
.fa-book:before {
  content: "\f02d";
}
.fa-bookmark:before {
  content: "\f02e";
}
.fa-print:before {
  content: "\f02f";
}
.fa-camera:before {
  content: "\f030";
}
.fa-font:before {
  content: "\f031";
}
.fa-bold:before {
  content: "\f032";
}
.fa-italic:before {
  content: "\f033";
}
.fa-text-height:before {
  content: "\f034";
}
.fa-text-width:before {
  content: "\f035";
}
.fa-align-left:before {
  content: "\f036";
}
.fa-align-center:before {
  content: "\f037";
}
.fa-align-right:before {
  content: "\f038";
}
.fa-align-justify:before {
  content: "\f039";
}
.fa-list:before {
  content: "\f03a";
}
.fa-dedent:before,
.fa-outdent:before {
  content: "\f03b";
}
.fa-indent:before {
  content: "\f03c";
}
.fa-video-camera:before {
  content: "\f03d";
}
.fa-photo:before,
.fa-image:before,
.fa-picture-o:before {
  content: "\f03e";
}
.fa-pencil:before {
  content: "\f040";
}
.fa-map-marker:before {
  content: "\f041";
}
.fa-adjust:before {
  content: "\f042";
}
.fa-tint:before {
  content: "\f043";
}
.fa-edit:before,
.fa-pencil-square-o:before {
  content: "\f044";
}
.fa-share-square-o:before {
  content: "\f045";
}
.fa-check-square-o:before {
  content: "\f046";
}
.fa-arrows:before {
  content: "\f047";
}
.fa-step-backward:before {
  content: "\f048";
}
.fa-fast-backward:before {
  content: "\f049";
}
.fa-backward:before {
  content: "\f04a";
}
.fa-play:before {
  content: "\f04b";
}
.fa-pause:before {
  content: "\f04c";
}
.fa-stop:before {
  content: "\f04d";
}
.fa-forward:before {
  content: "\f04e";
}
.fa-fast-forward:before {
  content: "\f050";
}
.fa-step-forward:before {
  content: "\f051";
}
.fa-eject:before {
  content: "\f052";
}
.fa-chevron-left:before {
  content: "\f053";
}
.fa-chevron-right:before {
  content: "\f054";
}
.fa-plus-circle:before {
  content: "\f055";
}
.fa-minus-circle:before {
  content: "\f056";
}
.fa-times-circle:before {
  content: "\f057";
}
.fa-check-circle:before {
  content: "\f058";
}
.fa-question-circle:before {
  content: "\f059";
}
.fa-info-circle:before {
  content: "\f05a";
}
.fa-crosshairs:before {
  content: "\f05b";
}
.fa-times-circle-o:before {
  content: "\f05c";
}
.fa-check-circle-o:before {
  content: "\f05d";
}
.fa-ban:before {
  content: "\f05e";
}
.fa-arrow-left:before {
  content: "\f060";
}
.fa-arrow-right:before {
  content: "\f061";
}
.fa-arrow-up:before {
  content: "\f062";
}
.fa-arrow-down:before {
  content: "\f063";
}
.fa-mail-forward:before,
.fa-share:before {
  content: "\f064";
}
.fa-expand:before {
  content: "\f065";
}
.fa-compress:before {
  content: "\f066";
}
.fa-plus:before {
  content: "\f067";
}
.fa-minus:before {
  content: "\f068";
}
.fa-asterisk:before {
  content: "\f069";
}
.fa-exclamation-circle:before {
  content: "\f06a";
}
.fa-gift:before {
  content: "\f06b";
}
.fa-leaf:before {
  content: "\f06c";
}
.fa-fire:before {
  content: "\f06d";
}
.fa-eye:before {
  content: "\f06e";
}
.fa-eye-slash:before {
  content: "\f070";
}
.fa-warning:before,
.fa-exclamation-triangle:before {
  content: "\f071";
}
.fa-plane:before {
  content: "\f072";
}
.fa-calendar:before {
  content: "\f073";
}
.fa-random:before {
  content: "\f074";
}
.fa-comment:before {
  content: "\f075";
}
.fa-magnet:before {
  content: "\f076";
}
.fa-chevron-up:before {
  content: "\f077";
}
.fa-chevron-down:before {
  content: "\f078";
}
.fa-retweet:before {
  content: "\f079";
}
.fa-shopping-cart:before {
  content: "\f07a";
}
.fa-folder:before {
  content: "\f07b";
}
.fa-folder-open:before {
  content: "\f07c";
}
.fa-arrows-v:before {
  content: "\f07d";
}
.fa-arrows-h:before {
  content: "\f07e";
}
.fa-bar-chart-o:before,
.fa-bar-chart:before {
  content: "\f080";
}
.fa-twitter-square:before {
  content: "\f081";
}
.fa-facebook-square:before {
  content: "\f082";
}
.fa-camera-retro:before {
  content: "\f083";
}
.fa-key:before {
  content: "\f084";
}
.fa-gears:before,
.fa-cogs:before {
  content: "\f085";
}
.fa-comments:before {
  content: "\f086";
}
.fa-thumbs-o-up:before {
  content: "\f087";
}
.fa-thumbs-o-down:before {
  content: "\f088";
}
.fa-star-half:before {
  content: "\f089";
}
.fa-heart-o:before {
  content: "\f08a";
}
.fa-sign-out:before {
  content: "\f08b";
}
.fa-linkedin-square:before {
  content: "\f08c";
}
.fa-thumb-tack:before {
  content: "\f08d";
}
.fa-external-link:before {
  content: "\f08e";
}
.fa-sign-in:before {
  content: "\f090";
}
.fa-trophy:before {
  content: "\f091";
}
.fa-github-square:before {
  content: "\f092";
}
.fa-upload:before {
  content: "\f093";
}
.fa-lemon-o:before {
  content: "\f094";
}
.fa-phone:before {
  content: "\f095";
}
.fa-square-o:before {
  content: "\f096";
}
.fa-bookmark-o:before {
  content: "\f097";
}
.fa-phone-square:before {
  content: "\f098";
}
.fa-twitter:before {
  content: "\f099";
}
.fa-facebook:before {
  content: "\f09a";
}
.fa-github:before {
  content: "\f09b";
}
.fa-unlock:before {
  content: "\f09c";
}
.fa-credit-card:before {
  content: "\f09d";
}
.fa-rss:before {
  content: "\f09e";
}
.fa-hdd-o:before {
  content: "\f0a0";
}
.fa-bullhorn:before {
  content: "\f0a1";
}
.fa-bell:before {
  content: "\f0f3";
}
.fa-certificate:before {
  content: "\f0a3";
}
.fa-hand-o-right:before {
  content: "\f0a4";
}
.fa-hand-o-left:before {
  content: "\f0a5";
}
.fa-hand-o-up:before {
  content: "\f0a6";
}
.fa-hand-o-down:before {
  content: "\f0a7";
}
.fa-arrow-circle-left:before {
  content: "\f0a8";
}
.fa-arrow-circle-right:before {
  content: "\f0a9";
}
.fa-arrow-circle-up:before {
  content: "\f0aa";
}
.fa-arrow-circle-down:before {
  content: "\f0ab";
}
.fa-globe:before {
  content: "\f0ac";
}
.fa-wrench:before {
  content: "\f0ad";
}
.fa-tasks:before {
  content: "\f0ae";
}
.fa-filter:before {
  content: "\f0b0";
}
.fa-briefcase:before {
  content: "\f0b1";
}
.fa-arrows-alt:before {
  content: "\f0b2";
}
.fa-group:before,
.fa-users:before {
  content: "\f0c0";
}
.fa-chain:before,
.fa-link:before {
  content: "\f0c1";
}
.fa-cloud:before {
  content: "\f0c2";
}
.fa-flask:before {
  content: "\f0c3";
}
.fa-cut:before,
.fa-scissors:before {
  content: "\f0c4";
}
.fa-copy:before,
.fa-files-o:before {
  content: "\f0c5";
}
.fa-paperclip:before {
  content: "\f0c6";
}
.fa-save:before,
.fa-floppy-o:before {
  content: "\f0c7";
}
.fa-square:before {
  content: "\f0c8";
}
.fa-navicon:before,
.fa-reorder:before,
.fa-bars:before {
  content: "\f0c9";
}
.fa-list-ul:before {
  content: "\f0ca";
}
.fa-list-ol:before {
  content: "\f0cb";
}
.fa-strikethrough:before {
  content: "\f0cc";
}
.fa-underline:before {
  content: "\f0cd";
}
.fa-table:before {
  content: "\f0ce";
}
.fa-magic:before {
  content: "\f0d0";
}
.fa-truck:before {
  content: "\f0d1";
}
.fa-pinterest:before {
  content: "\f0d2";
}
.fa-pinterest-square:before {
  content: "\f0d3";
}
.fa-google-plus-square:before {
  content: "\f0d4";
}
.fa-google-plus:before {
  content: "\f0d5";
}
.fa-money:before {
  content: "\f0d6";
}
.fa-caret-down:before {
  content: "\f0d7";
}
.fa-caret-up:before {
  content: "\f0d8";
}
.fa-caret-left:before {
  content: "\f0d9";
}
.fa-caret-right:before {
  content: "\f0da";
}
.fa-columns:before {
  content: "\f0db";
}
.fa-unsorted:before,
.fa-sort:before {
  content: "\f0dc";
}
.fa-sort-down:before,
.fa-sort-desc:before {
  content: "\f0dd";
}
.fa-sort-up:before,
.fa-sort-asc:before {
  content: "\f0de";
}
.fa-envelope:before {
  content: "\f0e0";
}
.fa-linkedin:before {
  content: "\f0e1";
}
.fa-rotate-left:before,
.fa-undo:before {
  content: "\f0e2";
}
.fa-legal:before,
.fa-gavel:before {
  content: "\f0e3";
}
.fa-dashboard:before,
.fa-tachometer:before {
  content: "\f0e4";
}
.fa-comment-o:before {
  content: "\f0e5";
}
.fa-comments-o:before {
  content: "\f0e6";
}
.fa-flash:before,
.fa-bolt:before {
  content: "\f0e7";
}
.fa-sitemap:before {
  content: "\f0e8";
}
.fa-umbrella:before {
  content: "\f0e9";
}
.fa-paste:before,
.fa-clipboard:before {
  content: "\f0ea";
}
.fa-lightbulb-o:before {
  content: "\f0eb";
}
.fa-exchange:before {
  content: "\f0ec";
}
.fa-cloud-download:before {
  content: "\f0ed";
}
.fa-cloud-upload:before {
  content: "\f0ee";
}
.fa-user-md:before {
  content: "\f0f0";
}
.fa-stethoscope:before {
  content: "\f0f1";
}
.fa-suitcase:before {
  content: "\f0f2";
}
.fa-bell-o:before {
  content: "\f0a2";
}
.fa-coffee:before {
  content: "\f0f4";
}
.fa-cutlery:before {
  content: "\f0f5";
}
.fa-file-text-o:before {
  content: "\f0f6";
}
.fa-building-o:before {
  content: "\f0f7";
}
.fa-hospital-o:before {
  content: "\f0f8";
}
.fa-ambulance:before {
  content: "\f0f9";
}
.fa-medkit:before {
  content: "\f0fa";
}
.fa-fighter-jet:before {
  content: "\f0fb";
}
.fa-beer:before {
  content: "\f0fc";
}
.fa-h-square:before {
  content: "\f0fd";
}
.fa-plus-square:before {
  content: "\f0fe";
}
.fa-angle-double-left:before {
  content: "\f100";
}
.fa-angle-double-right:before {
  content: "\f101";
}
.fa-angle-double-up:before {
  content: "\f102";
}
.fa-angle-double-down:before {
  content: "\f103";
}
.fa-angle-left:before {
  content: "\f104";
}
.fa-angle-right:before {
  content: "\f105";
}
.fa-angle-up:before {
  content: "\f106";
}
.fa-angle-down:before {
  content: "\f107";
}
.fa-desktop:before {
  content: "\f108";
}
.fa-laptop:before {
  content: "\f109";
}
.fa-tablet:before {
  content: "\f10a";
}
.fa-mobile-phone:before,
.fa-mobile:before {
  content: "\f10b";
}
.fa-circle-o:before {
  content: "\f10c";
}
.fa-quote-left:before {
  content: "\f10d";
}
.fa-quote-right:before {
  content: "\f10e";
}
.fa-spinner:before {
  content: "\f110";
}
.fa-circle:before {
  content: "\f111";
}
.fa-mail-reply:before,
.fa-reply:before {
  content: "\f112";
}
.fa-github-alt:before {
  content: "\f113";
}
.fa-folder-o:before {
  content: "\f114";
}
.fa-folder-open-o:before {
  content: "\f115";
}
.fa-smile-o:before {
  content: "\f118";
}
.fa-frown-o:before {
  content: "\f119";
}
.fa-meh-o:before {
  content: "\f11a";
}
.fa-gamepad:before {
  content: "\f11b";
}
.fa-keyboard-o:before {
  content: "\f11c";
}
.fa-flag-o:before {
  content: "\f11d";
}
.fa-flag-checkered:before {
  content: "\f11e";
}
.fa-terminal:before {
  content: "\f120";
}
.fa-code:before {
  content: "\f121";
}
.fa-mail-reply-all:before,
.fa-reply-all:before {
  content: "\f122";
}
.fa-star-half-empty:before,
.fa-star-half-full:before,
.fa-star-half-o:before {
  content: "\f123";
}
.fa-location-arrow:before {
  content: "\f124";
}
.fa-crop:before {
  content: "\f125";
}
.fa-code-fork:before {
  content: "\f126";
}
.fa-unlink:before,
.fa-chain-broken:before {
  content: "\f127";
}
.fa-question:before {
  content: "\f128";
}
.fa-info:before {
  content: "\f129";
}
.fa-exclamation:before {
  content: "\f12a";
}
.fa-superscript:before {
  content: "\f12b";
}
.fa-subscript:before {
  content: "\f12c";
}
.fa-eraser:before {
  content: "\f12d";
}
.fa-puzzle-piece:before {
  content: "\f12e";
}
.fa-microphone:before {
  content: "\f130";
}
.fa-microphone-slash:before {
  content: "\f131";
}
.fa-shield:before {
  content: "\f132";
}
.fa-calendar-o:before {
  content: "\f133";
}
.fa-fire-extinguisher:before {
  content: "\f134";
}
.fa-rocket:before {
  content: "\f135";
}
.fa-maxcdn:before {
  content: "\f136";
}
.fa-chevron-circle-left:before {
  content: "\f137";
}
.fa-chevron-circle-right:before {
  content: "\f138";
}
.fa-chevron-circle-up:before {
  content: "\f139";
}
.fa-chevron-circle-down:before {
  content: "\f13a";
}
.fa-html5:before {
  content: "\f13b";
}
.fa-css3:before {
  content: "\f13c";
}
.fa-anchor:before {
  content: "\f13d";
}
.fa-unlock-alt:before {
  content: "\f13e";
}
.fa-bullseye:before {
  content: "\f140";
}
.fa-ellipsis-h:before {
  content: "\f141";
}
.fa-ellipsis-v:before {
  content: "\f142";
}
.fa-rss-square:before {
  content: "\f143";
}
.fa-play-circle:before {
  content: "\f144";
}
.fa-ticket:before {
  content: "\f145";
}
.fa-minus-square:before {
  content: "\f146";
}
.fa-minus-square-o:before {
  content: "\f147";
}
.fa-level-up:before {
  content: "\f148";
}
.fa-level-down:before {
  content: "\f149";
}
.fa-check-square:before {
  content: "\f14a";
}
.fa-pencil-square:before {
  content: "\f14b";
}
.fa-external-link-square:before {
  content: "\f14c";
}
.fa-share-square:before {
  content: "\f14d";
}
.fa-compass:before {
  content: "\f14e";
}
.fa-toggle-down:before,
.fa-caret-square-o-down:before {
  content: "\f150";
}
.fa-toggle-up:before,
.fa-caret-square-o-up:before {
  content: "\f151";
}
.fa-toggle-right:before,
.fa-caret-square-o-right:before {
  content: "\f152";
}
.fa-euro:before,
.fa-eur:before {
  content: "\f153";
}
.fa-gbp:before {
  content: "\f154";
}
.fa-dollar:before,
.fa-usd:before {
  content: "\f155";
}
.fa-rupee:before,
.fa-inr:before {
  content: "\f156";
}
.fa-cny:before,
.fa-rmb:before,
.fa-yen:before,
.fa-jpy:before {
  content: "\f157";
}
.fa-ruble:before,
.fa-rouble:before,
.fa-rub:before {
  content: "\f158";
}
.fa-won:before,
.fa-krw:before {
  content: "\f159";
}
.fa-bitcoin:before,
.fa-btc:before {
  content: "\f15a";
}
.fa-file:before {
  content: "\f15b";
}
.fa-file-text:before {
  content: "\f15c";
}
.fa-sort-alpha-asc:before {
  content: "\f15d";
}
.fa-sort-alpha-desc:before {
  content: "\f15e";
}
.fa-sort-amount-asc:before {
  content: "\f160";
}
.fa-sort-amount-desc:before {
  content: "\f161";
}
.fa-sort-numeric-asc:before {
  content: "\f162";
}
.fa-sort-numeric-desc:before {
  content: "\f163";
}
.fa-thumbs-up:before {
  content: "\f164";
}
.fa-thumbs-down:before {
  content: "\f165";
}
.fa-youtube-square:before {
  content: "\f166";
}
.fa-youtube:before {
  content: "\f167";
}
.fa-xing:before {
  content: "\f168";
}
.fa-xing-square:before {
  content: "\f169";
}
.fa-youtube-play:before {
  content: "\f16a";
}
.fa-dropbox:before {
  content: "\f16b";
}
.fa-stack-overflow:before {
  content: "\f16c";
}
.fa-instagram:before {
  content: "\f16d";
}
.fa-flickr:before {
  content: "\f16e";
}
.fa-adn:before {
  content: "\f170";
}
.fa-bitbucket:before {
  content: "\f171";
}
.fa-bitbucket-square:before {
  content: "\f172";
}
.fa-tumblr:before {
  content: "\f173";
}
.fa-tumblr-square:before {
  content: "\f174";
}
.fa-long-arrow-down:before {
  content: "\f175";
}
.fa-long-arrow-up:before {
  content: "\f176";
}
.fa-long-arrow-left:before {
  content: "\f177";
}
.fa-long-arrow-right:before {
  content: "\f178";
}
.fa-apple:before {
  content: "\f179";
}
.fa-windows:before {
  content: "\f17a";
}
.fa-android:before {
  content: "\f17b";
}
.fa-linux:before {
  content: "\f17c";
}
.fa-dribbble:before {
  content: "\f17d";
}
.fa-skype:before {
  content: "\f17e";
}
.fa-foursquare:before {
  content: "\f180";
}
.fa-trello:before {
  content: "\f181";
}
.fa-female:before {
  content: "\f182";
}
.fa-male:before {
  content: "\f183";
}
.fa-gittip:before {
  content: "\f184";
}
.fa-sun-o:before {
  content: "\f185";
}
.fa-moon-o:before {
  content: "\f186";
}
.fa-archive:before {
  content: "\f187";
}
.fa-bug:before {
  content: "\f188";
}
.fa-vk:before {
  content: "\f189";
}
.fa-weibo:before {
  content: "\f18a";
}
.fa-renren:before {
  content: "\f18b";
}
.fa-pagelines:before {
  content: "\f18c";
}
.fa-stack-exchange:before {
  content: "\f18d";
}
.fa-arrow-circle-o-right:before {
  content: "\f18e";
}
.fa-arrow-circle-o-left:before {
  content: "\f190";
}
.fa-toggle-left:before,
.fa-caret-square-o-left:before {
  content: "\f191";
}
.fa-dot-circle-o:before {
  content: "\f192";
}
.fa-wheelchair:before {
  content: "\f193";
}
.fa-vimeo-square:before {
  content: "\f194";
}
.fa-turkish-lira:before,
.fa-try:before {
  content: "\f195";
}
.fa-plus-square-o:before {
  content: "\f196";
}
.fa-space-shuttle:before {
  content: "\f197";
}
.fa-slack:before {
  content: "\f198";
}
.fa-envelope-square:before {
  content: "\f199";
}
.fa-wordpress:before {
  content: "\f19a";
}
.fa-openid:before {
  content: "\f19b";
}
.fa-institution:before,
.fa-bank:before,
.fa-university:before {
  content: "\f19c";
}
.fa-mortar-board:before,
.fa-graduation-cap:before {
  content: "\f19d";
}
.fa-yahoo:before {
  content: "\f19e";
}
.fa-google:before {
  content: "\f1a0";
}
.fa-reddit:before {
  content: "\f1a1";
}
.fa-reddit-square:before {
  content: "\f1a2";
}
.fa-stumbleupon-circle:before {
  content: "\f1a3";
}
.fa-stumbleupon:before {
  content: "\f1a4";
}
.fa-delicious:before {
  content: "\f1a5";
}
.fa-digg:before {
  content: "\f1a6";
}
.fa-pied-piper:before {
  content: "\f1a7";
}
.fa-pied-piper-alt:before {
  content: "\f1a8";
}
.fa-drupal:before {
  content: "\f1a9";
}
.fa-joomla:before {
  content: "\f1aa";
}
.fa-language:before {
  content: "\f1ab";
}
.fa-fax:before {
  content: "\f1ac";
}
.fa-building:before {
  content: "\f1ad";
}
.fa-child:before {
  content: "\f1ae";
}
.fa-paw:before {
  content: "\f1b0";
}
.fa-spoon:before {
  content: "\f1b1";
}
.fa-cube:before {
  content: "\f1b2";
}
.fa-cubes:before {
  content: "\f1b3";
}
.fa-behance:before {
  content: "\f1b4";
}
.fa-behance-square:before {
  content: "\f1b5";
}
.fa-steam:before {
  content: "\f1b6";
}
.fa-steam-square:before {
  content: "\f1b7";
}
.fa-recycle:before {
  content: "\f1b8";
}
.fa-automobile:before,
.fa-car:before {
  content: "\f1b9";
}
.fa-cab:before,
.fa-taxi:before {
  content: "\f1ba";
}
.fa-tree:before {
  content: "\f1bb";
}
.fa-spotify:before {
  content: "\f1bc";
}
.fa-deviantart:before {
  content: "\f1bd";
}
.fa-soundcloud:before {
  content: "\f1be";
}
.fa-database:before {
  content: "\f1c0";
}
.fa-file-pdf-o:before {
  content: "\f1c1";
}
.fa-file-word-o:before {
  content: "\f1c2";
}
.fa-file-excel-o:before {
  content: "\f1c3";
}
.fa-file-powerpoint-o:before {
  content: "\f1c4";
}
.fa-file-photo-o:before,
.fa-file-picture-o:before,
.fa-file-image-o:before {
  content: "\f1c5";
}
.fa-file-zip-o:before,
.fa-file-archive-o:before {
  content: "\f1c6";
}
.fa-file-sound-o:before,
.fa-file-audio-o:before {
  content: "\f1c7";
}
.fa-file-movie-o:before,
.fa-file-video-o:before {
  content: "\f1c8";
}
.fa-file-code-o:before {
  content: "\f1c9";
}
.fa-vine:before {
  content: "\f1ca";
}
.fa-codepen:before {
  content: "\f1cb";
}
.fa-jsfiddle:before {
  content: "\f1cc";
}
.fa-life-bouy:before,
.fa-life-buoy:before,
.fa-life-saver:before,
.fa-support:before,
.fa-life-ring:before {
  content: "\f1cd";
}
.fa-circle-o-notch:before {
  content: "\f1ce";
}
.fa-ra:before,
.fa-rebel:before {
  content: "\f1d0";
}
.fa-ge:before,
.fa-empire:before {
  content: "\f1d1";
}
.fa-git-square:before {
  content: "\f1d2";
}
.fa-git:before {
  content: "\f1d3";
}
.fa-hacker-news:before {
  content: "\f1d4";
}
.fa-tencent-weibo:before {
  content: "\f1d5";
}
.fa-qq:before {
  content: "\f1d6";
}
.fa-wechat:before,
.fa-weixin:before {
  content: "\f1d7";
}
.fa-send:before,
.fa-paper-plane:before {
  content: "\f1d8";
}
.fa-send-o:before,
.fa-paper-plane-o:before {
  content: "\f1d9";
}
.fa-history:before {
  content: "\f1da";
}
.fa-circle-thin:before {
  content: "\f1db";
}
.fa-header:before {
  content: "\f1dc";
}
.fa-paragraph:before {
  content: "\f1dd";
}
.fa-sliders:before {
  content: "\f1de";
}
.fa-share-alt:before {
  content: "\f1e0";
}
.fa-share-alt-square:before {
  content: "\f1e1";
}
.fa-bomb:before {
  content: "\f1e2";
}
.fa-soccer-ball-o:before,
.fa-futbol-o:before {
  content: "\f1e3";
}
.fa-tty:before {
  content: "\f1e4";
}
.fa-binoculars:before {
  content: "\f1e5";
}
.fa-plug:before {
  content: "\f1e6";
}
.fa-slideshare:before {
  content: "\f1e7";
}
.fa-twitch:before {
  content: "\f1e8";
}
.fa-yelp:before {
  content: "\f1e9";
}
.fa-newspaper-o:before {
  content: "\f1ea";
}
.fa-wifi:before {
  content: "\f1eb";
}
.fa-calculator:before {
  content: "\f1ec";
}
.fa-paypal:before {
  content: "\f1ed";
}
.fa-google-wallet:before {
  content: "\f1ee";
}
.fa-cc-visa:before {
  content: "\f1f0";
}
.fa-cc-mastercard:before {
  content: "\f1f1";
}
.fa-cc-discover:before {
  content: "\f1f2";
}
.fa-cc-amex:before {
  content: "\f1f3";
}
.fa-cc-paypal:before {
  content: "\f1f4";
}
.fa-cc-stripe:before {
  content: "\f1f5";
}
.fa-bell-slash:before {
  content: "\f1f6";
}
.fa-bell-slash-o:before {
  content: "\f1f7";
}
.fa-trash:before {
  content: "\f1f8";
}
.fa-copyright:before {
  content: "\f1f9";
}
.fa-at:before {
  content: "\f1fa";
}
.fa-eyedropper:before {
  content: "\f1fb";
}
.fa-paint-brush:before {
  content: "\f1fc";
}
.fa-birthday-cake:before {
  content: "\f1fd";
}
.fa-area-chart:before {
  content: "\f1fe";
}
.fa-pie-chart:before {
  content: "\f200";
}
.fa-line-chart:before {
  content: "\f201";
}
.fa-lastfm:before {
  content: "\f202";
}
.fa-lastfm-square:before {
  content: "\f203";
}
.fa-toggle-off:before {
  content: "\f204";
}
.fa-toggle-on:before {
  content: "\f205";
}
.fa-bicycle:before {
  content: "\f206";
}
.fa-bus:before {
  content: "\f207";
}
.fa-ioxhost:before {
  content: "\f208";
}
.fa-angellist:before {
  content: "\f209";
}
.fa-cc:before {
  content: "\f20a";
}
.fa-shekel:before,
.fa-sheqel:before,
.fa-ils:before {
  content: "\f20b";
}
.fa-meanpath:before {
  content: "\f20c";
}
/*!
*
* IPython base
*
*/
.modal.fade .modal-dialog {
  -webkit-transform: translate(0, 0);
  -ms-transform: translate(0, 0);
  -o-transform: translate(0, 0);
  transform: translate(0, 0);
}
code {
  color: #000;
}
pre {
  font-size: inherit;
  line-height: inherit;
}
label {
  font-weight: normal;
}
/* Make the page background atleast 100% the height of the view port */
/* Make the page itself atleast 70% the height of the view port */
.border-box-sizing {
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
}
.corner-all {
  border-radius: 2px;
}
.no-padding {
  padding: 0px;
}
/* Flexible box model classes */
/* Taken from Alex Russell http://infrequently.org/2009/08/css-3-progress/ */
/* This file is a compatability layer.  It allows the usage of flexible box 
model layouts accross multiple browsers, including older browsers.  The newest,
universal implementation of the flexible box model is used when available (see
`Modern browsers` comments below).  Browsers that are known to implement this 
new spec completely include:

    Firefox 28.0+
    Chrome 29.0+
    Internet Explorer 11+ 
    Opera 17.0+

Browsers not listed, including Safari, are supported via the styling under the
`Old browsers` comments below.
*/
.hbox {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
}
.hbox > * {
  /* Old browsers */
  -webkit-box-flex: 0;
  -moz-box-flex: 0;
  box-flex: 0;
  /* Modern browsers */
  flex: none;
}
.vbox {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
.vbox > * {
  /* Old browsers */
  -webkit-box-flex: 0;
  -moz-box-flex: 0;
  box-flex: 0;
  /* Modern browsers */
  flex: none;
}
.hbox.reverse,
.vbox.reverse,
.reverse {
  /* Old browsers */
  -webkit-box-direction: reverse;
  -moz-box-direction: reverse;
  box-direction: reverse;
  /* Modern browsers */
  flex-direction: row-reverse;
}
.hbox.box-flex0,
.vbox.box-flex0,
.box-flex0 {
  /* Old browsers */
  -webkit-box-flex: 0;
  -moz-box-flex: 0;
  box-flex: 0;
  /* Modern browsers */
  flex: none;
  width: auto;
}
.hbox.box-flex1,
.vbox.box-flex1,
.box-flex1 {
  /* Old browsers */
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  box-flex: 1;
  /* Modern browsers */
  flex: 1;
}
.hbox.box-flex,
.vbox.box-flex,
.box-flex {
  /* Old browsers */
  /* Old browsers */
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  box-flex: 1;
  /* Modern browsers */
  flex: 1;
}
.hbox.box-flex2,
.vbox.box-flex2,
.box-flex2 {
  /* Old browsers */
  -webkit-box-flex: 2;
  -moz-box-flex: 2;
  box-flex: 2;
  /* Modern browsers */
  flex: 2;
}
.box-group1 {
  /*  Deprecated */
  -webkit-box-flex-group: 1;
  -moz-box-flex-group: 1;
  box-flex-group: 1;
}
.box-group2 {
  /* Deprecated */
  -webkit-box-flex-group: 2;
  -moz-box-flex-group: 2;
  box-flex-group: 2;
}
.hbox.start,
.vbox.start,
.start {
  /* Old browsers */
  -webkit-box-pack: start;
  -moz-box-pack: start;
  box-pack: start;
  /* Modern browsers */
  justify-content: flex-start;
}
.hbox.end,
.vbox.end,
.end {
  /* Old browsers */
  -webkit-box-pack: end;
  -moz-box-pack: end;
  box-pack: end;
  /* Modern browsers */
  justify-content: flex-end;
}
.hbox.center,
.vbox.center,
.center {
  /* Old browsers */
  -webkit-box-pack: center;
  -moz-box-pack: center;
  box-pack: center;
  /* Modern browsers */
  justify-content: center;
}
.hbox.baseline,
.vbox.baseline,
.baseline {
  /* Old browsers */
  -webkit-box-pack: baseline;
  -moz-box-pack: baseline;
  box-pack: baseline;
  /* Modern browsers */
  justify-content: baseline;
}
.hbox.stretch,
.vbox.stretch,
.stretch {
  /* Old browsers */
  -webkit-box-pack: stretch;
  -moz-box-pack: stretch;
  box-pack: stretch;
  /* Modern browsers */
  justify-content: stretch;
}
.hbox.align-start,
.vbox.align-start,
.align-start {
  /* Old browsers */
  -webkit-box-align: start;
  -moz-box-align: start;
  box-align: start;
  /* Modern browsers */
  align-items: flex-start;
}
.hbox.align-end,
.vbox.align-end,
.align-end {
  /* Old browsers */
  -webkit-box-align: end;
  -moz-box-align: end;
  box-align: end;
  /* Modern browsers */
  align-items: flex-end;
}
.hbox.align-center,
.vbox.align-center,
.align-center {
  /* Old browsers */
  -webkit-box-align: center;
  -moz-box-align: center;
  box-align: center;
  /* Modern browsers */
  align-items: center;
}
.hbox.align-baseline,
.vbox.align-baseline,
.align-baseline {
  /* Old browsers */
  -webkit-box-align: baseline;
  -moz-box-align: baseline;
  box-align: baseline;
  /* Modern browsers */
  align-items: baseline;
}
.hbox.align-stretch,
.vbox.align-stretch,
.align-stretch {
  /* Old browsers */
  -webkit-box-align: stretch;
  -moz-box-align: stretch;
  box-align: stretch;
  /* Modern browsers */
  align-items: stretch;
}
div.error {
  margin: 2em;
  text-align: center;
}
div.error > h1 {
  font-size: 500%;
  line-height: normal;
}
div.error > p {
  font-size: 200%;
  line-height: normal;
}
div.traceback-wrapper {
  text-align: left;
  max-width: 800px;
  margin: auto;
}
/**
 * Primary styles
 *
 * Author: Jupyter Development Team
 */
body {
  background-color: #fff;
  /* This makes sure that the body covers the entire window and needs to
       be in a different element than the display: box in wrapper below */
  position: absolute;
  left: 0px;
  right: 0px;
  top: 0px;
  bottom: 0px;
  overflow: visible;
}
body > #header {
  /* Initially hidden to prevent FLOUC */
  display: none;
  background-color: #fff;
  /* Display over codemirror */
  position: relative;
  z-index: 100;
}
body > #header #header-container {
  padding-bottom: 5px;
  padding-top: 5px;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
}
body > #header .header-bar {
  width: 100%;
  height: 1px;
  background: #e7e7e7;
  margin-bottom: -1px;
}
@media print {
  body > #header {
    display: none !important;
  }
}
#header-spacer {
  width: 100%;
  visibility: hidden;
}
@media print {
  #header-spacer {
    display: none;
  }
}
#ipython_notebook {
  padding-left: 0px;
  padding-top: 1px;
  padding-bottom: 1px;
}
@media (max-width: 991px) {
  #ipython_notebook {
    margin-left: 10px;
  }
}
#noscript {
  width: auto;
  padding-top: 16px;
  padding-bottom: 16px;
  text-align: center;
  font-size: 22px;
  color: red;
  font-weight: bold;
}
#ipython_notebook img {
  height: 28px;
}
#site {
  width: 100%;
  display: none;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  overflow: auto;
}
@media print {
  #site {
    height: auto !important;
  }
}
/* Smaller buttons */
.ui-button .ui-button-text {
  padding: 0.2em 0.8em;
  font-size: 77%;
}
input.ui-button {
  padding: 0.3em 0.9em;
}
span#login_widget {
  float: right;
}
span#login_widget > .button,
#logout {
  color: #333;
  background-color: #fff;
  border-color: #ccc;
}
span#login_widget > .button:focus,
#logout:focus,
span#login_widget > .button.focus,
#logout.focus {
  color: #333;
  background-color: #e6e6e6;
  border-color: #8c8c8c;
}
span#login_widget > .button:hover,
#logout:hover {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
span#login_widget > .button:active,
#logout:active,
span#login_widget > .button.active,
#logout.active,
.open > .dropdown-togglespan#login_widget > .button,
.open > .dropdown-toggle#logout {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
span#login_widget > .button:active:hover,
#logout:active:hover,
span#login_widget > .button.active:hover,
#logout.active:hover,
.open > .dropdown-togglespan#login_widget > .button:hover,
.open > .dropdown-toggle#logout:hover,
span#login_widget > .button:active:focus,
#logout:active:focus,
span#login_widget > .button.active:focus,
#logout.active:focus,
.open > .dropdown-togglespan#login_widget > .button:focus,
.open > .dropdown-toggle#logout:focus,
span#login_widget > .button:active.focus,
#logout:active.focus,
span#login_widget > .button.active.focus,
#logout.active.focus,
.open > .dropdown-togglespan#login_widget > .button.focus,
.open > .dropdown-toggle#logout.focus {
  color: #333;
  background-color: #d4d4d4;
  border-color: #8c8c8c;
}
span#login_widget > .button:active,
#logout:active,
span#login_widget > .button.active,
#logout.active,
.open > .dropdown-togglespan#login_widget > .button,
.open > .dropdown-toggle#logout {
  background-image: none;
}
span#login_widget > .button.disabled:hover,
#logout.disabled:hover,
span#login_widget > .button[disabled]:hover,
#logout[disabled]:hover,
fieldset[disabled] span#login_widget > .button:hover,
fieldset[disabled] #logout:hover,
span#login_widget > .button.disabled:focus,
#logout.disabled:focus,
span#login_widget > .button[disabled]:focus,
#logout[disabled]:focus,
fieldset[disabled] span#login_widget > .button:focus,
fieldset[disabled] #logout:focus,
span#login_widget > .button.disabled.focus,
#logout.disabled.focus,
span#login_widget > .button[disabled].focus,
#logout[disabled].focus,
fieldset[disabled] span#login_widget > .button.focus,
fieldset[disabled] #logout.focus {
  background-color: #fff;
  border-color: #ccc;
}
span#login_widget > .button .badge,
#logout .badge {
  color: #fff;
  background-color: #333;
}
.nav-header {
  text-transform: none;
}
#header > span {
  margin-top: 10px;
}
.modal_stretch .modal-dialog {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
  min-height: 80vh;
}
.modal_stretch .modal-dialog .modal-body {
  max-height: calc(100vh - 200px);
  overflow: auto;
  flex: 1;
}
@media (min-width: 768px) {
  .modal .modal-dialog {
    width: 700px;
  }
}
@media (min-width: 768px) {
  select.form-control {
    margin-left: 12px;
    margin-right: 12px;
  }
}
/*!
*
* IPython auth
*
*/
.center-nav {
  display: inline-block;
  margin-bottom: -4px;
}
/*!
*
* IPython tree view
*
*/
/* We need an invisible input field on top of the sentense*/
/* "Drag file onto the list ..." */
.alternate_upload {
  background-color: none;
  display: inline;
}
.alternate_upload.form {
  padding: 0;
  margin: 0;
}
.alternate_upload input.fileinput {
  text-align: center;
  vertical-align: middle;
  display: inline;
  opacity: 0;
  z-index: 2;
  width: 12ex;
  margin-right: -12ex;
}
.alternate_upload .btn-upload {
  height: 22px;
}
/**
 * Primary styles
 *
 * Author: Jupyter Development Team
 */
ul#tabs {
  margin-bottom: 4px;
}
ul#tabs a {
  padding-top: 6px;
  padding-bottom: 4px;
}
ul.breadcrumb a:focus,
ul.breadcrumb a:hover {
  text-decoration: none;
}
ul.breadcrumb i.icon-home {
  font-size: 16px;
  margin-right: 4px;
}
ul.breadcrumb span {
  color: #5e5e5e;
}
.list_toolbar {
  padding: 4px 0 4px 0;
  vertical-align: middle;
}
.list_toolbar .tree-buttons {
  padding-top: 1px;
}
.dynamic-buttons {
  padding-top: 3px;
  display: inline-block;
}
.list_toolbar [class*="span"] {
  min-height: 24px;
}
.list_header {
  font-weight: bold;
  background-color: #EEE;
}
.list_placeholder {
  font-weight: bold;
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 7px;
  padding-right: 7px;
}
.list_container {
  margin-top: 4px;
  margin-bottom: 20px;
  border: 1px solid #ddd;
  border-radius: 2px;
}
.list_container > div {
  border-bottom: 1px solid #ddd;
}
.list_container > div:hover .list-item {
  background-color: red;
}
.list_container > div:last-child {
  border: none;
}
.list_item:hover .list_item {
  background-color: #ddd;
}
.list_item a {
  text-decoration: none;
}
.list_item:hover {
  background-color: #fafafa;
}
.list_header > div,
.list_item > div {
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 7px;
  padding-right: 7px;
  line-height: 22px;
}
.list_header > div input,
.list_item > div input {
  margin-right: 7px;
  margin-left: 14px;
  vertical-align: baseline;
  line-height: 22px;
  position: relative;
  top: -1px;
}
.list_header > div .item_link,
.list_item > div .item_link {
  margin-left: -1px;
  vertical-align: baseline;
  line-height: 22px;
}
.new-file input[type=checkbox] {
  visibility: hidden;
}
.item_name {
  line-height: 22px;
  height: 24px;
}
.item_icon {
  font-size: 14px;
  color: #5e5e5e;
  margin-right: 7px;
  margin-left: 7px;
  line-height: 22px;
  vertical-align: baseline;
}
.item_buttons {
  line-height: 1em;
  margin-left: -5px;
}
.item_buttons .btn,
.item_buttons .btn-group,
.item_buttons .input-group {
  float: left;
}
.item_buttons > .btn,
.item_buttons > .btn-group,
.item_buttons > .input-group {
  margin-left: 5px;
}
.item_buttons .btn {
  min-width: 13ex;
}
.item_buttons .running-indicator {
  padding-top: 4px;
  color: #5cb85c;
}
.item_buttons .kernel-name {
  padding-top: 4px;
  color: #5bc0de;
  margin-right: 7px;
  float: left;
}
.toolbar_info {
  height: 24px;
  line-height: 24px;
}
.list_item input:not([type=checkbox]) {
  padding-top: 3px;
  padding-bottom: 3px;
  height: 22px;
  line-height: 14px;
  margin: 0px;
}
.highlight_text {
  color: blue;
}
#project_name {
  display: inline-block;
  padding-left: 7px;
  margin-left: -2px;
}
#project_name > .breadcrumb {
  padding: 0px;
  margin-bottom: 0px;
  background-color: transparent;
  font-weight: bold;
}
#tree-selector {
  padding-right: 0px;
}
#button-select-all {
  min-width: 50px;
}
#select-all {
  margin-left: 7px;
  margin-right: 2px;
}
.menu_icon {
  margin-right: 2px;
}
.tab-content .row {
  margin-left: 0px;
  margin-right: 0px;
}
.folder_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f114";
}
.folder_icon:before.pull-left {
  margin-right: .3em;
}
.folder_icon:before.pull-right {
  margin-left: .3em;
}
.notebook_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f02d";
  position: relative;
  top: -1px;
}
.notebook_icon:before.pull-left {
  margin-right: .3em;
}
.notebook_icon:before.pull-right {
  margin-left: .3em;
}
.running_notebook_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f02d";
  position: relative;
  top: -1px;
  color: #5cb85c;
}
.running_notebook_icon:before.pull-left {
  margin-right: .3em;
}
.running_notebook_icon:before.pull-right {
  margin-left: .3em;
}
.file_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f016";
  position: relative;
  top: -2px;
}
.file_icon:before.pull-left {
  margin-right: .3em;
}
.file_icon:before.pull-right {
  margin-left: .3em;
}
#notebook_toolbar .pull-right {
  padding-top: 0px;
  margin-right: -1px;
}
ul#new-menu {
  left: auto;
  right: 0;
}
.kernel-menu-icon {
  padding-right: 12px;
  width: 24px;
  content: "\f096";
}
.kernel-menu-icon:before {
  content: "\f096";
}
.kernel-menu-icon-current:before {
  content: "\f00c";
}
#tab_content {
  padding-top: 20px;
}
#running .panel-group .panel {
  margin-top: 3px;
  margin-bottom: 1em;
}
#running .panel-group .panel .panel-heading {
  background-color: #EEE;
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 7px;
  padding-right: 7px;
  line-height: 22px;
}
#running .panel-group .panel .panel-heading a:focus,
#running .panel-group .panel .panel-heading a:hover {
  text-decoration: none;
}
#running .panel-group .panel .panel-body {
  padding: 0px;
}
#running .panel-group .panel .panel-body .list_container {
  margin-top: 0px;
  margin-bottom: 0px;
  border: 0px;
  border-radius: 0px;
}
#running .panel-group .panel .panel-body .list_container .list_item {
  border-bottom: 1px solid #ddd;
}
#running .panel-group .panel .panel-body .list_container .list_item:last-child {
  border-bottom: 0px;
}
.delete-button {
  display: none;
}
.duplicate-button {
  display: none;
}
.rename-button {
  display: none;
}
.shutdown-button {
  display: none;
}
.dynamic-instructions {
  display: inline-block;
  padding-top: 4px;
}
/*!
*
* IPython text editor webapp
*
*/
.selected-keymap i.fa {
  padding: 0px 5px;
}
.selected-keymap i.fa:before {
  content: "\f00c";
}
#mode-menu {
  overflow: auto;
  max-height: 20em;
}
.edit_app #header {
  -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
}
.edit_app #menubar .navbar {
  /* Use a negative 1 bottom margin, so the border overlaps the border of the
    header */
  margin-bottom: -1px;
}
.dirty-indicator {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  width: 20px;
}
.dirty-indicator.pull-left {
  margin-right: .3em;
}
.dirty-indicator.pull-right {
  margin-left: .3em;
}
.dirty-indicator-dirty {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  width: 20px;
}
.dirty-indicator-dirty.pull-left {
  margin-right: .3em;
}
.dirty-indicator-dirty.pull-right {
  margin-left: .3em;
}
.dirty-indicator-clean {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  width: 20px;
}
.dirty-indicator-clean.pull-left {
  margin-right: .3em;
}
.dirty-indicator-clean.pull-right {
  margin-left: .3em;
}
.dirty-indicator-clean:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f00c";
}
.dirty-indicator-clean:before.pull-left {
  margin-right: .3em;
}
.dirty-indicator-clean:before.pull-right {
  margin-left: .3em;
}
#filename {
  font-size: 16pt;
  display: table;
  padding: 0px 5px;
}
#current-mode {
  padding-left: 5px;
  padding-right: 5px;
}
#texteditor-backdrop {
  padding-top: 20px;
  padding-bottom: 20px;
}
@media not print {
  #texteditor-backdrop {
    background-color: #EEE;
  }
}
@media print {
  #texteditor-backdrop #texteditor-container .CodeMirror-gutter,
  #texteditor-backdrop #texteditor-container .CodeMirror-gutters {
    background-color: #fff;
  }
}
@media not print {
  #texteditor-backdrop #texteditor-container .CodeMirror-gutter,
  #texteditor-backdrop #texteditor-container .CodeMirror-gutters {
    background-color: #fff;
  }
}
@media not print {
  #texteditor-backdrop #texteditor-container {
    padding: 0px;
    background-color: #fff;
    -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
    box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  }
}
/*!
*
* IPython notebook
*
*/
/* CSS font colors for translated ANSI colors. */
.ansibold {
  font-weight: bold;
}
/* use dark versions for foreground, to improve visibility */
.ansiblack {
  color: black;
}
.ansired {
  color: darkred;
}
.ansigreen {
  color: darkgreen;
}
.ansiyellow {
  color: #c4a000;
}
.ansiblue {
  color: darkblue;
}
.ansipurple {
  color: darkviolet;
}
.ansicyan {
  color: steelblue;
}
.ansigray {
  color: gray;
}
/* and light for background, for the same reason */
.ansibgblack {
  background-color: black;
}
.ansibgred {
  background-color: red;
}
.ansibggreen {
  background-color: green;
}
.ansibgyellow {
  background-color: yellow;
}
.ansibgblue {
  background-color: blue;
}
.ansibgpurple {
  background-color: magenta;
}
.ansibgcyan {
  background-color: cyan;
}
.ansibggray {
  background-color: gray;
}
div.cell {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
  border-radius: 2px;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  border-width: 1px;
  border-style: solid;
  border-color: transparent;
  width: 100%;
  padding: 5px;
  /* This acts as a spacer between cells, that is outside the border */
  margin: 0px;
  outline: none;
  border-left-width: 1px;
  padding-left: 5px;
  background: linear-gradient(to right, transparent -40px, transparent 1px, transparent 1px, transparent 100%);
}
div.cell.jupyter-soft-selected {
  border-left-color: #90CAF9;
  border-left-color: #E3F2FD;
  border-left-width: 1px;
  padding-left: 5px;
  border-right-color: #E3F2FD;
  border-right-width: 1px;
  background: #E3F2FD;
}
@media print {
  div.cell.jupyter-soft-selected {
    border-color: transparent;
  }
}
div.cell.selected {
  border-color: #ababab;
  border-left-width: 0px;
  padding-left: 6px;
  background: linear-gradient(to right, #42A5F5 -40px, #42A5F5 5px, transparent 5px, transparent 100%);
}
@media print {
  div.cell.selected {
    border-color: transparent;
  }
}
div.cell.selected.jupyter-soft-selected {
  border-left-width: 0;
  padding-left: 6px;
  background: linear-gradient(to right, #42A5F5 -40px, #42A5F5 7px, #E3F2FD 7px, #E3F2FD 100%);
}
.edit_mode div.cell.selected {
  border-color: #66BB6A;
  border-left-width: 0px;
  padding-left: 6px;
  background: linear-gradient(to right, #66BB6A -40px, #66BB6A 5px, transparent 5px, transparent 100%);
}
@media print {
  .edit_mode div.cell.selected {
    border-color: transparent;
  }
}
.prompt {
  /* This needs to be wide enough for 3 digit prompt numbers: In[100]: */
  min-width: 14ex;
  /* This padding is tuned to match the padding on the CodeMirror editor. */
  padding: 0.4em;
  margin: 0px;
  font-family: monospace;
  text-align: right;
  /* This has to match that of the the CodeMirror class line-height below */
  line-height: 1.21429em;
  /* Don't highlight prompt number selection */
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  /* Use default cursor */
  cursor: default;
}
@media (max-width: 540px) {
  .prompt {
    text-align: left;
  }
}
div.inner_cell {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
  /* Old browsers */
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  box-flex: 1;
  /* Modern browsers */
  flex: 1;
}
@-moz-document url-prefix() {
  div.inner_cell {
    overflow-x: hidden;
  }
}
/* input_area and input_prompt must match in top border and margin for alignment */
div.input_area {
  border: 1px solid #cfcfcf;
  border-radius: 2px;
  background: #f7f7f7;
  line-height: 1.21429em;
}
/* This is needed so that empty prompt areas can collapse to zero height when there
   is no content in the output_subarea and the prompt. The main purpose of this is
   to make sure that empty JavaScript output_subareas have no height. */
div.prompt:empty {
  padding-top: 0;
  padding-bottom: 0;
}
div.unrecognized_cell {
  padding: 5px 5px 5px 0px;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
}
div.unrecognized_cell .inner_cell {
  border-radius: 2px;
  padding: 5px;
  font-weight: bold;
  color: red;
  border: 1px solid #cfcfcf;
  background: #eaeaea;
}
div.unrecognized_cell .inner_cell a {
  color: inherit;
  text-decoration: none;
}
div.unrecognized_cell .inner_cell a:hover {
  color: inherit;
  text-decoration: none;
}
@media (max-width: 540px) {
  div.unrecognized_cell > div.prompt {
    display: none;
  }
}
div.code_cell {
  /* avoid page breaking on code cells when printing */
}
@media print {
  div.code_cell {
    page-break-inside: avoid;
  }
}
/* any special styling for code cells that are currently running goes here */
div.input {
  page-break-inside: avoid;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
}
@media (max-width: 540px) {
  div.input {
    /* Old browsers */
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-box-align: stretch;
    display: -moz-box;
    -moz-box-orient: vertical;
    -moz-box-align: stretch;
    display: box;
    box-orient: vertical;
    box-align: stretch;
    /* Modern browsers */
    display: flex;
    flex-direction: column;
    align-items: stretch;
  }
}
/* input_area and input_prompt must match in top border and margin for alignment */
div.input_prompt {
  color: #303F9F;
  border-top: 1px solid transparent;
}
div.input_area > div.highlight {
  margin: 0.4em;
  border: none;
  padding: 0px;
  background-color: transparent;
}
div.input_area > div.highlight > pre {
  margin: 0px;
  border: none;
  padding: 0px;
  background-color: transparent;
}
/* The following gets added to the <head> if it is detected that the user has a
 * monospace font with inconsistent normal/bold/italic height.  See
 * notebookmain.js.  Such fonts will have keywords vertically offset with
 * respect to the rest of the text.  The user should select a better font.
 * See: https://github.com/ipython/ipython/issues/1503
 *
 * .CodeMirror span {
 *      vertical-align: bottom;
 * }
 */
.CodeMirror {
  line-height: 1.21429em;
  /* Changed from 1em to our global default */
  font-size: 14px;
  height: auto;
  /* Changed to auto to autogrow */
  background: none;
  /* Changed from white to allow our bg to show through */
}
.CodeMirror-scroll {
  /*  The CodeMirror docs are a bit fuzzy on if overflow-y should be hidden or visible.*/
  /*  We have found that if it is visible, vertical scrollbars appear with font size changes.*/
  overflow-y: hidden;
  overflow-x: auto;
}
.CodeMirror-lines {
  /* In CM2, this used to be 0.4em, but in CM3 it went to 4px. We need the em value because */
  /* we have set a different line-height and want this to scale with that. */
  padding: 0.4em;
}
.CodeMirror-linenumber {
  padding: 0 8px 0 4px;
}
.CodeMirror-gutters {
  border-bottom-left-radius: 2px;
  border-top-left-radius: 2px;
}
.CodeMirror pre {
  /* In CM3 this went to 4px from 0 in CM2. We need the 0 value because of how we size */
  /* .CodeMirror-lines */
  padding: 0;
  border: 0;
  border-radius: 0;
}
/*

Original style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiacs.Org>
Adapted from GitHub theme

*/
.highlight-base {
  color: #000;
}
.highlight-variable {
  color: #000;
}
.highlight-variable-2 {
  color: #1a1a1a;
}
.highlight-variable-3 {
  color: #333333;
}
.highlight-string {
  color: #BA2121;
}
.highlight-comment {
  color: #408080;
  font-style: italic;
}
.highlight-number {
  color: #080;
}
.highlight-atom {
  color: #88F;
}
.highlight-keyword {
  color: #008000;
  font-weight: bold;
}
.highlight-builtin {
  color: #008000;
}
.highlight-error {
  color: #f00;
}
.highlight-operator {
  color: #AA22FF;
  font-weight: bold;
}
.highlight-meta {
  color: #AA22FF;
}
/* previously not defined, copying from default codemirror */
.highlight-def {
  color: #00f;
}
.highlight-string-2 {
  color: #f50;
}
.highlight-qualifier {
  color: #555;
}
.highlight-bracket {
  color: #997;
}
.highlight-tag {
  color: #170;
}
.highlight-attribute {
  color: #00c;
}
.highlight-header {
  color: blue;
}
.highlight-quote {
  color: #090;
}
.highlight-link {
  color: #00c;
}
/* apply the same style to codemirror */
.cm-s-ipython span.cm-keyword {
  color: #008000;
  font-weight: bold;
}
.cm-s-ipython span.cm-atom {
  color: #88F;
}
.cm-s-ipython span.cm-number {
  color: #080;
}
.cm-s-ipython span.cm-def {
  color: #00f;
}
.cm-s-ipython span.cm-variable {
  color: #000;
}
.cm-s-ipython span.cm-operator {
  color: #AA22FF;
  font-weight: bold;
}
.cm-s-ipython span.cm-variable-2 {
  color: #1a1a1a;
}
.cm-s-ipython span.cm-variable-3 {
  color: #333333;
}
.cm-s-ipython span.cm-comment {
  color: #408080;
  font-style: italic;
}
.cm-s-ipython span.cm-string {
  color: #BA2121;
}
.cm-s-ipython span.cm-string-2 {
  color: #f50;
}
.cm-s-ipython span.cm-meta {
  color: #AA22FF;
}
.cm-s-ipython span.cm-qualifier {
  color: #555;
}
.cm-s-ipython span.cm-builtin {
  color: #008000;
}
.cm-s-ipython span.cm-bracket {
  color: #997;
}
.cm-s-ipython span.cm-tag {
  color: #170;
}
.cm-s-ipython span.cm-attribute {
  color: #00c;
}
.cm-s-ipython span.cm-header {
  color: blue;
}
.cm-s-ipython span.cm-quote {
  color: #090;
}
.cm-s-ipython span.cm-link {
  color: #00c;
}
.cm-s-ipython span.cm-error {
  color: #f00;
}
.cm-s-ipython span.cm-tab {
  background: url();
  background-position: right;
  background-repeat: no-repeat;
}
div.output_wrapper {
  /* this position must be relative to enable descendents to be absolute within it */
  position: relative;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
  z-index: 1;
}
/* class for the output area when it should be height-limited */
div.output_scroll {
  /* ideally, this would be max-height, but FF barfs all over that */
  height: 24em;
  /* FF needs this *and the wrapper* to specify full width, or it will shrinkwrap */
  width: 100%;
  overflow: auto;
  border-radius: 2px;
  -webkit-box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
  box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
  display: block;
}
/* output div while it is collapsed */
div.output_collapsed {
  margin: 0px;
  padding: 0px;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
div.out_prompt_overlay {
  height: 100%;
  padding: 0px 0.4em;
  position: absolute;
  border-radius: 2px;
}
div.out_prompt_overlay:hover {
  /* use inner shadow to get border that is computed the same on WebKit/FF */
  -webkit-box-shadow: inset 0 0 1px #000;
  box-shadow: inset 0 0 1px #000;
  background: rgba(240, 240, 240, 0.5);
}
div.output_prompt {
  color: #D84315;
}
/* This class is the outer container of all output sections. */
div.output_area {
  padding: 0px;
  page-break-inside: avoid;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
}
div.output_area .MathJax_Display {
  text-align: left !important;
}
div.output_area .rendered_html table {
  margin-left: 0;
  margin-right: 0;
}
div.output_area .rendered_html img {
  margin-left: 0;
  margin-right: 0;
}
div.output_area img,
div.output_area svg {
  max-width: 100%;
  height: auto;
}
div.output_area img.unconfined,
div.output_area svg.unconfined {
  max-width: none;
}
/* This is needed to protect the pre formating from global settings such
   as that of bootstrap */
.output {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
@media (max-width: 540px) {
  div.output_area {
    /* Old browsers */
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-box-align: stretch;
    display: -moz-box;
    -moz-box-orient: vertical;
    -moz-box-align: stretch;
    display: box;
    box-orient: vertical;
    box-align: stretch;
    /* Modern browsers */
    display: flex;
    flex-direction: column;
    align-items: stretch;
  }
}
div.output_area pre {
  margin: 0;
  padding: 0;
  border: 0;
  vertical-align: baseline;
  color: black;
  background-color: transparent;
  border-radius: 0;
}
/* This class is for the output subarea inside the output_area and after
   the prompt div. */
div.output_subarea {
  overflow-x: auto;
  padding: 0.4em;
  /* Old browsers */
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  box-flex: 1;
  /* Modern browsers */
  flex: 1;
  max-width: calc(100% - 14ex);
}
div.output_scroll div.output_subarea {
  overflow-x: visible;
}
/* The rest of the output_* classes are for special styling of the different
   output types */
/* all text output has this class: */
div.output_text {
  text-align: left;
  color: #000;
  /* This has to match that of the the CodeMirror class line-height below */
  line-height: 1.21429em;
}
/* stdout/stderr are 'text' as well as 'stream', but execute_result/error are *not* streams */
div.output_stderr {
  background: #fdd;
  /* very light red background for stderr */
}
div.output_latex {
  text-align: left;
}
/* Empty output_javascript divs should have no height */
div.output_javascript:empty {
  padding: 0;
}
.js-error {
  color: darkred;
}
/* raw_input styles */
div.raw_input_container {
  line-height: 1.21429em;
  padding-top: 5px;
}
pre.raw_input_prompt {
  /* nothing needed here. */
}
input.raw_input {
  font-family: monospace;
  font-size: inherit;
  color: inherit;
  width: auto;
  /* make sure input baseline aligns with prompt */
  vertical-align: baseline;
  /* padding + margin = 0.5em between prompt and cursor */
  padding: 0em 0.25em;
  margin: 0em 0.25em;
}
input.raw_input:focus {
  box-shadow: none;
}
p.p-space {
  margin-bottom: 10px;
}
div.output_unrecognized {
  padding: 5px;
  font-weight: bold;
  color: red;
}
div.output_unrecognized a {
  color: inherit;
  text-decoration: none;
}
div.output_unrecognized a:hover {
  color: inherit;
  text-decoration: none;
}
.rendered_html {
  color: #000;
  /* any extras will just be numbers: */
}
.rendered_html em {
  font-style: italic;
}
.rendered_html strong {
  font-weight: bold;
}
.rendered_html u {
  text-decoration: underline;
}
.rendered_html :link {
  text-decoration: underline;
}
.rendered_html :visited {
  text-decoration: underline;
}
.rendered_html h1 {
  font-size: 185.7%;
  margin: 1.08em 0 0 0;
  font-weight: bold;
  line-height: 1.0;
}
.rendered_html h2 {
  font-size: 157.1%;
  margin: 1.27em 0 0 0;
  font-weight: bold;
  line-height: 1.0;
}
.rendered_html h3 {
  font-size: 128.6%;
  margin: 1.55em 0 0 0;
  font-weight: bold;
  line-height: 1.0;
}
.rendered_html h4 {
  font-size: 100%;
  margin: 2em 0 0 0;
  font-weight: bold;
  line-height: 1.0;
}
.rendered_html h5 {
  font-size: 100%;
  margin: 2em 0 0 0;
  font-weight: bold;
  line-height: 1.0;
  font-style: italic;
}
.rendered_html h6 {
  font-size: 100%;
  margin: 2em 0 0 0;
  font-weight: bold;
  line-height: 1.0;
  font-style: italic;
}
.rendered_html h1:first-child {
  margin-top: 0.538em;
}
.rendered_html h2:first-child {
  margin-top: 0.636em;
}
.rendered_html h3:first-child {
  margin-top: 0.777em;
}
.rendered_html h4:first-child {
  margin-top: 1em;
}
.rendered_html h5:first-child {
  margin-top: 1em;
}
.rendered_html h6:first-child {
  margin-top: 1em;
}
.rendered_html ul {
  list-style: disc;
  margin: 0em 2em;
  padding-left: 0px;
}
.rendered_html ul ul {
  list-style: square;
  margin: 0em 2em;
}
.rendered_html ul ul ul {
  list-style: circle;
  margin: 0em 2em;
}
.rendered_html ol {
  list-style: decimal;
  margin: 0em 2em;
  padding-left: 0px;
}
.rendered_html ol ol {
  list-style: upper-alpha;
  margin: 0em 2em;
}
.rendered_html ol ol ol {
  list-style: lower-alpha;
  margin: 0em 2em;
}
.rendered_html ol ol ol ol {
  list-style: lower-roman;
  margin: 0em 2em;
}
.rendered_html ol ol ol ol ol {
  list-style: decimal;
  margin: 0em 2em;
}
.rendered_html * + ul {
  margin-top: 1em;
}
.rendered_html * + ol {
  margin-top: 1em;
}
.rendered_html hr {
  color: black;
  background-color: black;
}
.rendered_html pre {
  margin: 1em 2em;
}
.rendered_html pre,
.rendered_html code {
  border: 0;
  background-color: #fff;
  color: #000;
  font-size: 100%;
  padding: 0px;
}
.rendered_html blockquote {
  margin: 1em 2em;
}
.rendered_html table {
  margin-left: auto;
  margin-right: auto;
  border: 1px solid black;
  border-collapse: collapse;
}
.rendered_html tr,
.rendered_html th,
.rendered_html td {
  border: 1px solid black;
  border-collapse: collapse;
  margin: 1em 2em;
}
.rendered_html td,
.rendered_html th {
  text-align: left;
  vertical-align: middle;
  padding: 4px;
}
.rendered_html th {
  font-weight: bold;
}
.rendered_html * + table {
  margin-top: 1em;
}
.rendered_html p {
  text-align: left;
}
.rendered_html * + p {
  margin-top: 1em;
}
.rendered_html img {
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.rendered_html * + img {
  margin-top: 1em;
}
.rendered_html img,
.rendered_html svg {
  max-width: 100%;
  height: auto;
}
.rendered_html img.unconfined,
.rendered_html svg.unconfined {
  max-width: none;
}
div.text_cell {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
}
@media (max-width: 540px) {
  div.text_cell > div.prompt {
    display: none;
  }
}
div.text_cell_render {
  /*font-family: "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;*/
  outline: none;
  resize: none;
  width: inherit;
  border-style: none;
  padding: 0.5em 0.5em 0.5em 0.4em;
  color: #000;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
}
a.anchor-link:link {
  text-decoration: none;
  padding: 0px 20px;
  visibility: hidden;
}
h1:hover .anchor-link,
h2:hover .anchor-link,
h3:hover .anchor-link,
h4:hover .anchor-link,
h5:hover .anchor-link,
h6:hover .anchor-link {
  visibility: visible;
}
.text_cell.rendered .input_area {
  display: none;
}
.text_cell.rendered .rendered_html {
  overflow-x: auto;
  overflow-y: hidden;
}
.text_cell.unrendered .text_cell_render {
  display: none;
}
.cm-header-1,
.cm-header-2,
.cm-header-3,
.cm-header-4,
.cm-header-5,
.cm-header-6 {
  font-weight: bold;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.cm-header-1 {
  font-size: 185.7%;
}
.cm-header-2 {
  font-size: 157.1%;
}
.cm-header-3 {
  font-size: 128.6%;
}
.cm-header-4 {
  font-size: 110%;
}
.cm-header-5 {
  font-size: 100%;
  font-style: italic;
}
.cm-header-6 {
  font-size: 100%;
  font-style: italic;
}
/*!
*
* IPython notebook webapp
*
*/
@media (max-width: 767px) {
  .notebook_app {
    padding-left: 0px;
    padding-right: 0px;
  }
}
#ipython-main-app {
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  height: 100%;
}
div#notebook_panel {
  margin: 0px;
  padding: 0px;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  height: 100%;
}
div#notebook {
  font-size: 14px;
  line-height: 20px;
  overflow-y: hidden;
  overflow-x: auto;
  width: 100%;
  /* This spaces the page away from the edge of the notebook area */
  padding-top: 20px;
  margin: 0px;
  outline: none;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  min-height: 100%;
}
@media not print {
  #notebook-container {
    padding: 15px;
    background-color: #fff;
    min-height: 0;
    -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
    box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  }
}
@media print {
  #notebook-container {
    width: 100%;
  }
}
div.ui-widget-content {
  border: 1px solid #ababab;
  outline: none;
}
pre.dialog {
  background-color: #f7f7f7;
  border: 1px solid #ddd;
  border-radius: 2px;
  padding: 0.4em;
  padding-left: 2em;
}
p.dialog {
  padding: 0.2em;
}
/* Word-wrap output correctly.  This is the CSS3 spelling, though Firefox seems
   to not honor it correctly.  Webkit browsers (Chrome, rekonq, Safari) do.
 */
pre,
code,
kbd,
samp {
  white-space: pre-wrap;
}
#fonttest {
  font-family: monospace;
}
p {
  margin-bottom: 0;
}
.end_space {
  min-height: 100px;
  transition: height .2s ease;
}
.notebook_app > #header {
  -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
}
@media not print {
  .notebook_app {
    background-color: #EEE;
  }
}
kbd {
  border-style: solid;
  border-width: 1px;
  box-shadow: none;
  margin: 2px;
  padding-left: 2px;
  padding-right: 2px;
  padding-top: 1px;
  padding-bottom: 1px;
}
/* CSS for the cell toolbar */
.celltoolbar {
  border: thin solid #CFCFCF;
  border-bottom: none;
  background: #EEE;
  border-radius: 2px 2px 0px 0px;
  width: 100%;
  height: 29px;
  padding-right: 4px;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
  /* Old browsers */
  -webkit-box-pack: end;
  -moz-box-pack: end;
  box-pack: end;
  /* Modern browsers */
  justify-content: flex-end;
  display: -webkit-flex;
}
@media print {
  .celltoolbar {
    display: none;
  }
}
.ctb_hideshow {
  display: none;
  vertical-align: bottom;
}
/* ctb_show is added to the ctb_hideshow div to show the cell toolbar.
   Cell toolbars are only shown when the ctb_global_show class is also set.
*/
.ctb_global_show .ctb_show.ctb_hideshow {
  display: block;
}
.ctb_global_show .ctb_show + .input_area,
.ctb_global_show .ctb_show + div.text_cell_input,
.ctb_global_show .ctb_show ~ div.text_cell_render {
  border-top-right-radius: 0px;
  border-top-left-radius: 0px;
}
.ctb_global_show .ctb_show ~ div.text_cell_render {
  border: 1px solid #cfcfcf;
}
.celltoolbar {
  font-size: 87%;
  padding-top: 3px;
}
.celltoolbar select {
  display: block;
  width: 100%;
  height: 32px;
  padding: 6px 12px;
  font-size: 13px;
  line-height: 1.42857143;
  color: #555555;
  background-color: #fff;
  background-image: none;
  border: 1px solid #ccc;
  border-radius: 2px;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  height: 30px;
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 1px;
  width: inherit;
  font-size: inherit;
  height: 22px;
  padding: 0px;
  display: inline-block;
}
.celltoolbar select:focus {
  border-color: #66afe9;
  outline: 0;
  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
  box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
}
.celltoolbar select::-moz-placeholder {
  color: #999;
  opacity: 1;
}
.celltoolbar select:-ms-input-placeholder {
  color: #999;
}
.celltoolbar select::-webkit-input-placeholder {
  color: #999;
}
.celltoolbar select::-ms-expand {
  border: 0;
  background-color: transparent;
}
.celltoolbar select[disabled],
.celltoolbar select[readonly],
fieldset[disabled] .celltoolbar select {
  background-color: #eeeeee;
  opacity: 1;
}
.celltoolbar select[disabled],
fieldset[disabled] .celltoolbar select {
  cursor: not-allowed;
}
textarea.celltoolbar select {
  height: auto;
}
select.celltoolbar select {
  height: 30px;
  line-height: 30px;
}
textarea.celltoolbar select,
select[multiple].celltoolbar select {
  height: auto;
}
.celltoolbar label {
  margin-left: 5px;
  margin-right: 5px;
}
.completions {
  position: absolute;
  z-index: 110;
  overflow: hidden;
  border: 1px solid #ababab;
  border-radius: 2px;
  -webkit-box-shadow: 0px 6px 10px -1px #adadad;
  box-shadow: 0px 6px 10px -1px #adadad;
  line-height: 1;
}
.completions select {
  background: white;
  outline: none;
  border: none;
  padding: 0px;
  margin: 0px;
  overflow: auto;
  font-family: monospace;
  font-size: 110%;
  color: #000;
  width: auto;
}
.completions select option.context {
  color: #286090;
}
#kernel_logo_widget {
  float: right !important;
  float: right;
}
#kernel_logo_widget .current_kernel_logo {
  display: none;
  margin-top: -1px;
  margin-bottom: -1px;
  width: 32px;
  height: 32px;
}
#menubar {
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  margin-top: 1px;
}
#menubar .navbar {
  border-top: 1px;
  border-radius: 0px 0px 2px 2px;
  margin-bottom: 0px;
}
#menubar .navbar-toggle {
  float: left;
  padding-top: 7px;
  padding-bottom: 7px;
  border: none;
}
#menubar .navbar-collapse {
  clear: left;
}
.nav-wrapper {
  border-bottom: 1px solid #e7e7e7;
}
i.menu-icon {
  padding-top: 4px;
}
ul#help_menu li a {
  overflow: hidden;
  padding-right: 2.2em;
}
ul#help_menu li a i {
  margin-right: -1.2em;
}
.dropdown-submenu {
  position: relative;
}
.dropdown-submenu > .dropdown-menu {
  top: 0;
  left: 100%;
  margin-top: -6px;
  margin-left: -1px;
}
.dropdown-submenu:hover > .dropdown-menu {
  display: block;
}
.dropdown-submenu > a:after {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  display: block;
  content: "\f0da";
  float: right;
  color: #333333;
  margin-top: 2px;
  margin-right: -10px;
}
.dropdown-submenu > a:after.pull-left {
  margin-right: .3em;
}
.dropdown-submenu > a:after.pull-right {
  margin-left: .3em;
}
.dropdown-submenu:hover > a:after {
  color: #262626;
}
.dropdown-submenu.pull-left {
  float: none;
}
.dropdown-submenu.pull-left > .dropdown-menu {
  left: -100%;
  margin-left: 10px;
}
#notification_area {
  float: right !important;
  float: right;
  z-index: 10;
}
.indicator_area {
  float: right !important;
  float: right;
  color: #777;
  margin-left: 5px;
  margin-right: 5px;
  width: 11px;
  z-index: 10;
  text-align: center;
  width: auto;
}
#kernel_indicator {
  float: right !important;
  float: right;
  color: #777;
  margin-left: 5px;
  margin-right: 5px;
  width: 11px;
  z-index: 10;
  text-align: center;
  width: auto;
  border-left: 1px solid;
}
#kernel_indicator .kernel_indicator_name {
  padding-left: 5px;
  padding-right: 5px;
}
#modal_indicator {
  float: right !important;
  float: right;
  color: #777;
  margin-left: 5px;
  margin-right: 5px;
  width: 11px;
  z-index: 10;
  text-align: center;
  width: auto;
}
#readonly-indicator {
  float: right !important;
  float: right;
  color: #777;
  margin-left: 5px;
  margin-right: 5px;
  width: 11px;
  z-index: 10;
  text-align: center;
  width: auto;
  margin-top: 2px;
  margin-bottom: 0px;
  margin-left: 0px;
  margin-right: 0px;
  display: none;
}
.modal_indicator:before {
  width: 1.28571429em;
  text-align: center;
}
.edit_mode .modal_indicator:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f040";
}
.edit_mode .modal_indicator:before.pull-left {
  margin-right: .3em;
}
.edit_mode .modal_indicator:before.pull-right {
  margin-left: .3em;
}
.command_mode .modal_indicator:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: ' ';
}
.command_mode .modal_indicator:before.pull-left {
  margin-right: .3em;
}
.command_mode .modal_indicator:before.pull-right {
  margin-left: .3em;
}
.kernel_idle_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f10c";
}
.kernel_idle_icon:before.pull-left {
  margin-right: .3em;
}
.kernel_idle_icon:before.pull-right {
  margin-left: .3em;
}
.kernel_busy_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f111";
}
.kernel_busy_icon:before.pull-left {
  margin-right: .3em;
}
.kernel_busy_icon:before.pull-right {
  margin-left: .3em;
}
.kernel_dead_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f1e2";
}
.kernel_dead_icon:before.pull-left {
  margin-right: .3em;
}
.kernel_dead_icon:before.pull-right {
  margin-left: .3em;
}
.kernel_disconnected_icon:before {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  content: "\f127";
}
.kernel_disconnected_icon:before.pull-left {
  margin-right: .3em;
}
.kernel_disconnected_icon:before.pull-right {
  margin-left: .3em;
}
.notification_widget {
  color: #777;
  z-index: 10;
  background: rgba(240, 240, 240, 0.5);
  margin-right: 4px;
  color: #333;
  background-color: #fff;
  border-color: #ccc;
}
.notification_widget:focus,
.notification_widget.focus {
  color: #333;
  background-color: #e6e6e6;
  border-color: #8c8c8c;
}
.notification_widget:hover {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
.notification_widget:active,
.notification_widget.active,
.open > .dropdown-toggle.notification_widget {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
.notification_widget:active:hover,
.notification_widget.active:hover,
.open > .dropdown-toggle.notification_widget:hover,
.notification_widget:active:focus,
.notification_widget.active:focus,
.open > .dropdown-toggle.notification_widget:focus,
.notification_widget:active.focus,
.notification_widget.active.focus,
.open > .dropdown-toggle.notification_widget.focus {
  color: #333;
  background-color: #d4d4d4;
  border-color: #8c8c8c;
}
.notification_widget:active,
.notification_widget.active,
.open > .dropdown-toggle.notification_widget {
  background-image: none;
}
.notification_widget.disabled:hover,
.notification_widget[disabled]:hover,
fieldset[disabled] .notification_widget:hover,
.notification_widget.disabled:focus,
.notification_widget[disabled]:focus,
fieldset[disabled] .notification_widget:focus,
.notification_widget.disabled.focus,
.notification_widget[disabled].focus,
fieldset[disabled] .notification_widget.focus {
  background-color: #fff;
  border-color: #ccc;
}
.notification_widget .badge {
  color: #fff;
  background-color: #333;
}
.notification_widget.warning {
  color: #fff;
  background-color: #f0ad4e;
  border-color: #eea236;
}
.notification_widget.warning:focus,
.notification_widget.warning.focus {
  color: #fff;
  background-color: #ec971f;
  border-color: #985f0d;
}
.notification_widget.warning:hover {
  color: #fff;
  background-color: #ec971f;
  border-color: #d58512;
}
.notification_widget.warning:active,
.notification_widget.warning.active,
.open > .dropdown-toggle.notification_widget.warning {
  color: #fff;
  background-color: #ec971f;
  border-color: #d58512;
}
.notification_widget.warning:active:hover,
.notification_widget.warning.active:hover,
.open > .dropdown-toggle.notification_widget.warning:hover,
.notification_widget.warning:active:focus,
.notification_widget.warning.active:focus,
.open > .dropdown-toggle.notification_widget.warning:focus,
.notification_widget.warning:active.focus,
.notification_widget.warning.active.focus,
.open > .dropdown-toggle.notification_widget.warning.focus {
  color: #fff;
  background-color: #d58512;
  border-color: #985f0d;
}
.notification_widget.warning:active,
.notification_widget.warning.active,
.open > .dropdown-toggle.notification_widget.warning {
  background-image: none;
}
.notification_widget.warning.disabled:hover,
.notification_widget.warning[disabled]:hover,
fieldset[disabled] .notification_widget.warning:hover,
.notification_widget.warning.disabled:focus,
.notification_widget.warning[disabled]:focus,
fieldset[disabled] .notification_widget.warning:focus,
.notification_widget.warning.disabled.focus,
.notification_widget.warning[disabled].focus,
fieldset[disabled] .notification_widget.warning.focus {
  background-color: #f0ad4e;
  border-color: #eea236;
}
.notification_widget.warning .badge {
  color: #f0ad4e;
  background-color: #fff;
}
.notification_widget.success {
  color: #fff;
  background-color: #5cb85c;
  border-color: #4cae4c;
}
.notification_widget.success:focus,
.notification_widget.success.focus {
  color: #fff;
  background-color: #449d44;
  border-color: #255625;
}
.notification_widget.success:hover {
  color: #fff;
  background-color: #449d44;
  border-color: #398439;
}
.notification_widget.success:active,
.notification_widget.success.active,
.open > .dropdown-toggle.notification_widget.success {
  color: #fff;
  background-color: #449d44;
  border-color: #398439;
}
.notification_widget.success:active:hover,
.notification_widget.success.active:hover,
.open > .dropdown-toggle.notification_widget.success:hover,
.notification_widget.success:active:focus,
.notification_widget.success.active:focus,
.open > .dropdown-toggle.notification_widget.success:focus,
.notification_widget.success:active.focus,
.notification_widget.success.active.focus,
.open > .dropdown-toggle.notification_widget.success.focus {
  color: #fff;
  background-color: #398439;
  border-color: #255625;
}
.notification_widget.success:active,
.notification_widget.success.active,
.open > .dropdown-toggle.notification_widget.success {
  background-image: none;
}
.notification_widget.success.disabled:hover,
.notification_widget.success[disabled]:hover,
fieldset[disabled] .notification_widget.success:hover,
.notification_widget.success.disabled:focus,
.notification_widget.success[disabled]:focus,
fieldset[disabled] .notification_widget.success:focus,
.notification_widget.success.disabled.focus,
.notification_widget.success[disabled].focus,
fieldset[disabled] .notification_widget.success.focus {
  background-color: #5cb85c;
  border-color: #4cae4c;
}
.notification_widget.success .badge {
  color: #5cb85c;
  background-color: #fff;
}
.notification_widget.info {
  color: #fff;
  background-color: #5bc0de;
  border-color: #46b8da;
}
.notification_widget.info:focus,
.notification_widget.info.focus {
  color: #fff;
  background-color: #31b0d5;
  border-color: #1b6d85;
}
.notification_widget.info:hover {
  color: #fff;
  background-color: #31b0d5;
  border-color: #269abc;
}
.notification_widget.info:active,
.notification_widget.info.active,
.open > .dropdown-toggle.notification_widget.info {
  color: #fff;
  background-color: #31b0d5;
  border-color: #269abc;
}
.notification_widget.info:active:hover,
.notification_widget.info.active:hover,
.open > .dropdown-toggle.notification_widget.info:hover,
.notification_widget.info:active:focus,
.notification_widget.info.active:focus,
.open > .dropdown-toggle.notification_widget.info:focus,
.notification_widget.info:active.focus,
.notification_widget.info.active.focus,
.open > .dropdown-toggle.notification_widget.info.focus {
  color: #fff;
  background-color: #269abc;
  border-color: #1b6d85;
}
.notification_widget.info:active,
.notification_widget.info.active,
.open > .dropdown-toggle.notification_widget.info {
  background-image: none;
}
.notification_widget.info.disabled:hover,
.notification_widget.info[disabled]:hover,
fieldset[disabled] .notification_widget.info:hover,
.notification_widget.info.disabled:focus,
.notification_widget.info[disabled]:focus,
fieldset[disabled] .notification_widget.info:focus,
.notification_widget.info.disabled.focus,
.notification_widget.info[disabled].focus,
fieldset[disabled] .notification_widget.info.focus {
  background-color: #5bc0de;
  border-color: #46b8da;
}
.notification_widget.info .badge {
  color: #5bc0de;
  background-color: #fff;
}
.notification_widget.danger {
  color: #fff;
  background-color: #d9534f;
  border-color: #d43f3a;
}
.notification_widget.danger:focus,
.notification_widget.danger.focus {
  color: #fff;
  background-color: #c9302c;
  border-color: #761c19;
}
.notification_widget.danger:hover {
  color: #fff;
  background-color: #c9302c;
  border-color: #ac2925;
}
.notification_widget.danger:active,
.notification_widget.danger.active,
.open > .dropdown-toggle.notification_widget.danger {
  color: #fff;
  background-color: #c9302c;
  border-color: #ac2925;
}
.notification_widget.danger:active:hover,
.notification_widget.danger.active:hover,
.open > .dropdown-toggle.notification_widget.danger:hover,
.notification_widget.danger:active:focus,
.notification_widget.danger.active:focus,
.open > .dropdown-toggle.notification_widget.danger:focus,
.notification_widget.danger:active.focus,
.notification_widget.danger.active.focus,
.open > .dropdown-toggle.notification_widget.danger.focus {
  color: #fff;
  background-color: #ac2925;
  border-color: #761c19;
}
.notification_widget.danger:active,
.notification_widget.danger.active,
.open > .dropdown-toggle.notification_widget.danger {
  background-image: none;
}
.notification_widget.danger.disabled:hover,
.notification_widget.danger[disabled]:hover,
fieldset[disabled] .notification_widget.danger:hover,
.notification_widget.danger.disabled:focus,
.notification_widget.danger[disabled]:focus,
fieldset[disabled] .notification_widget.danger:focus,
.notification_widget.danger.disabled.focus,
.notification_widget.danger[disabled].focus,
fieldset[disabled] .notification_widget.danger.focus {
  background-color: #d9534f;
  border-color: #d43f3a;
}
.notification_widget.danger .badge {
  color: #d9534f;
  background-color: #fff;
}
div#pager {
  background-color: #fff;
  font-size: 14px;
  line-height: 20px;
  overflow: hidden;
  display: none;
  position: fixed;
  bottom: 0px;
  width: 100%;
  max-height: 50%;
  padding-top: 8px;
  -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  /* Display over codemirror */
  z-index: 100;
  /* Hack which prevents jquery ui resizable from changing top. */
  top: auto !important;
}
div#pager pre {
  line-height: 1.21429em;
  color: #000;
  background-color: #f7f7f7;
  padding: 0.4em;
}
div#pager #pager-button-area {
  position: absolute;
  top: 8px;
  right: 20px;
}
div#pager #pager-contents {
  position: relative;
  overflow: auto;
  width: 100%;
  height: 100%;
}
div#pager #pager-contents #pager-container {
  position: relative;
  padding: 15px 0px;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
}
div#pager .ui-resizable-handle {
  top: 0px;
  height: 8px;
  background: #f7f7f7;
  border-top: 1px solid #cfcfcf;
  border-bottom: 1px solid #cfcfcf;
  /* This injects handle bars (a short, wide = symbol) for 
        the resize handle. */
}
div#pager .ui-resizable-handle::after {
  content: '';
  top: 2px;
  left: 50%;
  height: 3px;
  width: 30px;
  margin-left: -15px;
  position: absolute;
  border-top: 1px solid #cfcfcf;
}
.quickhelp {
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
  line-height: 1.8em;
}
.shortcut_key {
  display: inline-block;
  width: 20ex;
  text-align: right;
  font-family: monospace;
}
.shortcut_descr {
  display: inline-block;
  /* Old browsers */
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  box-flex: 1;
  /* Modern browsers */
  flex: 1;
}
span.save_widget {
  margin-top: 6px;
}
span.save_widget span.filename {
  height: 1em;
  line-height: 1em;
  padding: 3px;
  margin-left: 16px;
  border: none;
  font-size: 146.5%;
  border-radius: 2px;
}
span.save_widget span.filename:hover {
  background-color: #e6e6e6;
}
span.checkpoint_status,
span.autosave_status {
  font-size: small;
}
@media (max-width: 767px) {
  span.save_widget {
    font-size: small;
  }
  span.checkpoint_status,
  span.autosave_status {
    display: none;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  span.checkpoint_status {
    display: none;
  }
  span.autosave_status {
    font-size: x-small;
  }
}
.toolbar {
  padding: 0px;
  margin-left: -5px;
  margin-top: 2px;
  margin-bottom: 5px;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
}
.toolbar select,
.toolbar label {
  width: auto;
  vertical-align: middle;
  margin-right: 2px;
  margin-bottom: 0px;
  display: inline;
  font-size: 92%;
  margin-left: 0.3em;
  margin-right: 0.3em;
  padding: 0px;
  padding-top: 3px;
}
.toolbar .btn {
  padding: 2px 8px;
}
.toolbar .btn-group {
  margin-top: 0px;
  margin-left: 5px;
}
#maintoolbar {
  margin-bottom: -3px;
  margin-top: -8px;
  border: 0px;
  min-height: 27px;
  margin-left: 0px;
  padding-top: 11px;
  padding-bottom: 3px;
}
#maintoolbar .navbar-text {
  float: none;
  vertical-align: middle;
  text-align: right;
  margin-left: 5px;
  margin-right: 0px;
  margin-top: 0px;
}
.select-xs {
  height: 24px;
}
.pulse,
.dropdown-menu > li > a.pulse,
li.pulse > a.dropdown-toggle,
li.pulse.open > a.dropdown-toggle {
  background-color: #F37626;
  color: white;
}
/**
 * Primary styles
 *
 * Author: Jupyter Development Team
 */
/** WARNING IF YOU ARE EDITTING THIS FILE, if this is a .css file, It has a lot
 * of chance of beeing generated from the ../less/[samename].less file, you can
 * try to get back the less file by reverting somme commit in history
 **/
/*
 * We'll try to get something pretty, so we
 * have some strange css to have the scroll bar on
 * the left with fix button on the top right of the tooltip
 */
@-moz-keyframes fadeOut {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
@-webkit-keyframes fadeOut {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
@-moz-keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@-webkit-keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
/*properties of tooltip after "expand"*/
.bigtooltip {
  overflow: auto;
  height: 200px;
  -webkit-transition-property: height;
  -webkit-transition-duration: 500ms;
  -moz-transition-property: height;
  -moz-transition-duration: 500ms;
  transition-property: height;
  transition-duration: 500ms;
}
/*properties of tooltip before "expand"*/
.smalltooltip {
  -webkit-transition-property: height;
  -webkit-transition-duration: 500ms;
  -moz-transition-property: height;
  -moz-transition-duration: 500ms;
  transition-property: height;
  transition-duration: 500ms;
  text-overflow: ellipsis;
  overflow: hidden;
  height: 80px;
}
.tooltipbuttons {
  position: absolute;
  padding-right: 15px;
  top: 0px;
  right: 0px;
}
.tooltiptext {
  /*avoid the button to overlap on some docstring*/
  padding-right: 30px;
}
.ipython_tooltip {
  max-width: 700px;
  /*fade-in animation when inserted*/
  -webkit-animation: fadeOut 400ms;
  -moz-animation: fadeOut 400ms;
  animation: fadeOut 400ms;
  -webkit-animation: fadeIn 400ms;
  -moz-animation: fadeIn 400ms;
  animation: fadeIn 400ms;
  vertical-align: middle;
  background-color: #f7f7f7;
  overflow: visible;
  border: #ababab 1px solid;
  outline: none;
  padding: 3px;
  margin: 0px;
  padding-left: 7px;
  font-family: monospace;
  min-height: 50px;
  -moz-box-shadow: 0px 6px 10px -1px #adadad;
  -webkit-box-shadow: 0px 6px 10px -1px #adadad;
  box-shadow: 0px 6px 10px -1px #adadad;
  border-radius: 2px;
  position: absolute;
  z-index: 1000;
}
.ipython_tooltip a {
  float: right;
}
.ipython_tooltip .tooltiptext pre {
  border: 0;
  border-radius: 0;
  font-size: 100%;
  background-color: #f7f7f7;
}
.pretooltiparrow {
  left: 0px;
  margin: 0px;
  top: -16px;
  width: 40px;
  height: 16px;
  overflow: hidden;
  position: absolute;
}
.pretooltiparrow:before {
  background-color: #f7f7f7;
  border: 1px #ababab solid;
  z-index: 11;
  content: "";
  position: absolute;
  left: 15px;
  top: 10px;
  width: 25px;
  height: 25px;
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  -o-transform: rotate(45deg);
}
ul.typeahead-list i {
  margin-left: -10px;
  width: 18px;
}
ul.typeahead-list {
  max-height: 80vh;
  overflow: auto;
}
ul.typeahead-list > li > a {
  /** Firefox bug **/
  /* see https://github.com/jupyter/notebook/issues/559 */
  white-space: normal;
}
.cmd-palette .modal-body {
  padding: 7px;
}
.cmd-palette form {
  background: white;
}
.cmd-palette input {
  outline: none;
}
.no-shortcut {
  display: none;
}
.command-shortcut:before {
  content: "(command)";
  padding-right: 3px;
  color: #777777;
}
.edit-shortcut:before {
  content: "(edit)";
  padding-right: 3px;
  color: #777777;
}
#find-and-replace #replace-preview .match,
#find-and-replace #replace-preview .insert {
  background-color: #BBDEFB;
  border-color: #90CAF9;
  border-style: solid;
  border-width: 1px;
  border-radius: 0px;
}
#find-and-replace #replace-preview .replace .match {
  background-color: #FFCDD2;
  border-color: #EF9A9A;
  border-radius: 0px;
}
#find-and-replace #replace-preview .replace .insert {
  background-color: #C8E6C9;
  border-color: #A5D6A7;
  border-radius: 0px;
}
#find-and-replace #replace-preview {
  max-height: 60vh;
  overflow: auto;
}
#find-and-replace #replace-preview pre {
  padding: 5px 10px;
}
.terminal-app {
  background: #EEE;
}
.terminal-app #header {
  background: #fff;
  -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
}
.terminal-app .terminal {
  float: left;
  font-family: monospace;
  color: white;
  background: black;
  padding: 0.4em;
  border-radius: 2px;
  -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.4);
  box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.4);
}
.terminal-app .terminal,
.terminal-app .terminal dummy-screen {
  line-height: 1em;
  font-size: 14px;
}
.terminal-app .terminal-cursor {
  color: black;
  background: white;
}
.terminal-app #terminado-container {
  margin-top: 20px;
}
/*# sourceMappingURL=style.min.css.map */
    </style>
<style type="text/css">
    .highlight .hll { background-color: #ffffcc }
.highlight  { background: #f8f8f8; }
.highlight .c { color: #408080; font-style: italic } /* Comment */
.highlight .err { border: 1px solid #FF0000 } /* Error */
.highlight .k { color: #008000; font-weight: bold } /* Keyword */
.highlight .o { color: #666666 } /* Operator */
.highlight .ch { color: #408080; font-style: italic } /* Comment.Hashbang */
.highlight .cm { color: #408080; font-style: italic } /* Comment.Multiline */
.highlight .cp { color: #BC7A00 } /* Comment.Preproc */
.highlight .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */
.highlight .c1 { color: #408080; font-style: italic } /* Comment.Single */
.highlight .cs { color: #408080; font-style: italic } /* Comment.Special */
.highlight .gd { color: #A00000 } /* Generic.Deleted */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .gr { color: #FF0000 } /* Generic.Error */
.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
.highlight .gi { color: #00A000 } /* Generic.Inserted */
.highlight .go { color: #888888 } /* Generic.Output */
.highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
.highlight .gt { color: #0044DD } /* Generic.Traceback */
.highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
.highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
.highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
.highlight .kp { color: #008000 } /* Keyword.Pseudo */
.highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #B00040 } /* Keyword.Type */
.highlight .m { color: #666666 } /* Literal.Number */
.highlight .s { color: #BA2121 } /* Literal.String */
.highlight .na { color: #7D9029 } /* Name.Attribute */
.highlight .nb { color: #008000 } /* Name.Builtin */
.highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */
.highlight .no { color: #880000 } /* Name.Constant */
.highlight .nd { color: #AA22FF } /* Name.Decorator */
.highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */
.highlight .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
.highlight .nf { color: #0000FF } /* Name.Function */
.highlight .nl { color: #A0A000 } /* Name.Label */
.highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
.highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */
.highlight .nv { color: #19177C } /* Name.Variable */
.highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
.highlight .mb { color: #666666 } /* Literal.Number.Bin */
.highlight .mf { color: #666666 } /* Literal.Number.Float */
.highlight .mh { color: #666666 } /* Literal.Number.Hex */
.highlight .mi { color: #666666 } /* Literal.Number.Integer */
.highlight .mo { color: #666666 } /* Literal.Number.Oct */
.highlight .sb { color: #BA2121 } /* Literal.String.Backtick */
.highlight .sc { color: #BA2121 } /* Literal.String.Char */
.highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
.highlight .s2 { color: #BA2121 } /* Literal.String.Double */
.highlight .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
.highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */
.highlight .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
.highlight .sx { color: #008000 } /* Literal.String.Other */
.highlight .sr { color: #BB6688 } /* Literal.String.Regex */
.highlight .s1 { color: #BA2121 } /* Literal.String.Single */
.highlight .ss { color: #19177C } /* Literal.String.Symbol */
.highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */
.highlight .vc { color: #19177C } /* Name.Variable.Class */
.highlight .vg { color: #19177C } /* Name.Variable.Global */
.highlight .vi { color: #19177C } /* Name.Variable.Instance */
.highlight .il { color: #666666 } /* Literal.Number.Integer.Long */
    </style>
<style type="text/css">
    
/* Temporary definitions which will become obsolete with Notebook release 5.0 */
.ansi-black-fg { color: #3E424D; }
.ansi-black-bg { background-color: #3E424D; }
.ansi-black-intense-fg { color: #282C36; }
.ansi-black-intense-bg { background-color: #282C36; }
.ansi-red-fg { color: #E75C58; }
.ansi-red-bg { background-color: #E75C58; }
.ansi-red-intense-fg { color: #B22B31; }
.ansi-red-intense-bg { background-color: #B22B31; }
.ansi-green-fg { color: #00A250; }
.ansi-green-bg { background-color: #00A250; }
.ansi-green-intense-fg { color: #007427; }
.ansi-green-intense-bg { background-color: #007427; }
.ansi-yellow-fg { color: #DDB62B; }
.ansi-yellow-bg { background-color: #DDB62B; }
.ansi-yellow-intense-fg { color: #B27D12; }
.ansi-yellow-intense-bg { background-color: #B27D12; }
.ansi-blue-fg { color: #208FFB; }
.ansi-blue-bg { background-color: #208FFB; }
.ansi-blue-intense-fg { color: #0065CA; }
.ansi-blue-intense-bg { background-color: #0065CA; }
.ansi-magenta-fg { color: #D160C4; }
.ansi-magenta-bg { background-color: #D160C4; }
.ansi-magenta-intense-fg { color: #A03196; }
.ansi-magenta-intense-bg { background-color: #A03196; }
.ansi-cyan-fg { color: #60C6C8; }
.ansi-cyan-bg { background-color: #60C6C8; }
.ansi-cyan-intense-fg { color: #258F8F; }
.ansi-cyan-intense-bg { background-color: #258F8F; }
.ansi-white-fg { color: #C5C1B4; }
.ansi-white-bg { background-color: #C5C1B4; }
.ansi-white-intense-fg { color: #A1A6B2; }
.ansi-white-intense-bg { background-color: #A1A6B2; }

.ansi-bold { font-weight: bold; }

    </style>


<style type="text/css">
/* Overrides of notebook CSS for static HTML export */
body {
  overflow: visible;
  padding: 8px;
}

div#notebook {
  overflow: visible;
  border-top: none;
}

@media print {
  div.cell {
    display: block;
    page-break-inside: avoid;
  } 
  div.output_wrapper { 
    display: block;
    page-break-inside: avoid; 
  }
  div.output { 
    display: block;
    page-break-inside: avoid; 
  }
}
</style>

<!-- Custom stylesheet, it must be in the same directory as the html file -->
<link rel="stylesheet" href="custom.css">

<!-- Loading mathjax macro -->
<!-- Load mathjax -->
    <script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML"></script>
    <!-- MathJax configuration -->
    <script type="text/x-mathjax-config">
    MathJax.Hub.Config({
        tex2jax: {
            inlineMath: [ ['$','$'], ["\\(","\\)"] ],
            displayMath: [ ['$$','$$'], ["\\[","\\]"] ],
            processEscapes: true,
            processEnvironments: true
        },
        // Center justify equations in code and markdown cells. Elsewhere
        // we use CSS to left justify single line equations in code cells.
        displayAlign: 'center',
        "HTML-CSS": {
            styles: {'.MathJax_Display': {"margin": 0}},
            linebreaks: { automatic: true }
        }
    });
    </script>
    <!-- End of mathjax configuration --></head>
<body>
  <div tabindex="-1" id="notebook" class="border-box-sizing">
    <div class="container" id="notebook-container">

<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="Training-Models---Intro">Training Models - Intro<a class="anchor-link" href="#Training-Models---Intro">&#182;</a></h2>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="Linear-Regression">Linear Regression<a class="anchor-link" href="#Linear-Regression">&#182;</a></h3><ul>
<li>y = theta0 + (theta1 <em> x1) + (theta2 </em> x2) + ...</li>
<li>= h(theta)(x) </li>
<li><p>= theta^T (dot) x --- theta^T = theta vector, transposed (row instead of col)</p>
</li>
<li><p>Training a model = finding theta that minimizes error function (ex: MSE)</p>
</li>
</ul>
<p><img src="MSE-cost-function-linear-regression.png" alt="alt text"></p>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="Normal-Equation:-finds-theta-that-minimizes-cost-function">Normal Equation: finds theta that minimizes cost function<a class="anchor-link" href="#Normal-Equation:-finds-theta-that-minimizes-cost-function">&#182;</a></h3>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[1]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># generate some data</span>
<span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
<span class="n">X</span> <span class="o">=</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">rand</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
<span class="n">y</span> <span class="o">=</span> <span class="mi">4</span> <span class="o">+</span> <span class="mi">3</span> <span class="o">*</span> <span class="n">X</span> <span class="o">+</span> <span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">randn</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>

<span class="o">%</span><span class="k">matplotlib</span> inline
<span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="nn">plt</span>

<span class="n">plt</span><span class="o">.</span><span class="n">scatter</span><span class="p">(</span><span class="n">X</span><span class="p">,</span><span class="n">y</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area"><div class="prompt"></div>


<div class="output_png output_subarea ">
<img src="
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
km6RdLW7Pzd4v7vvdPdZd59dt45zOAGgLLl2WzSzjpaT+Y3ufmsxIUXbtXee7WsBYIjMCd3MTNIN
kh52938oLqTVdu2dX3HAxPzCoq659QFJIqkDQFeekssmSX8oabOZ7ev+d3FBca1w/e2PrjgtSOKQ
ZgAYlHmE7u7/LckKjCUWhzQDQLJWrBTlkGYASNaKhL7twg2a7EysuI1DmgFgpVacKcohzQCQrBUJ
XeKQZgBI0oqSCwAgGQkdAAJBQgeAQJDQASAQJHQACIS5e3UvZnZA0hMjPu0kST8pIZwiNDW2psYl
NTe2psYlNTe2psYlNTe2rHG9xt0Tt6utNKFnYWZz7j5bdxxRmhpbU+OSmhtbU+OSmhtbU+OSmhtb
2XFRcgGAQJDQASAQbUjoO+sOYIimxtbUuKTmxtbUuKTmxtbUuKTmxlZqXI2voQMA0mnDCB0AkEJt
Cd3MLjKzR83se2a2PeJ+M7N/7N5/v5m9Me1zK4jtPd2YHjCzb5vZWX33Pd69fZ+ZzdUQ2/lm9mzf
KVIfTvvckuPa1hfTg2Z2xMxO7N5X2ntmZp82s2fM7MGY++u8zpJiq+U6SxFXLddYytjqus5ebWZ3
mtlDZrbfzK6KeEz515q7V/6fpAlJ35f0Wkkvk3SfpN8ceMzFkr6m5VORzpV0T9rnVhDbeZJO6H79
e73Yut8/LumkGt+38yV9Jctzy4xr4PGXSdpd0Xv2FklvlPRgzP21XGcpY6vrOkuKq/JrLG1sNV5n
J0t6Y/fr4yR9t46cVtcI/U2SvufuP3D3FyR9QdLlA4+5XNJnfdndkqbM7OSUzy01Nnf/trsf7H57
t6RTC3z9XLGV9Nyif/a7JX2+oNceyt2/JelnQx5S13WWGFtd11mK9yxO7e/ZgCqvs6fd/d7u1z+X
9LCkwf2+S7/W6kro05J+2Pf9U1r9j497TJrnlh1bvyu1/Knb45L+y8z2mNnWAuMaJbbzun/Sfc3M
zhjxuWXGJTNbK+kiSbf03Vzme5akrutsVFVeZ2lUfY2NpM7rzMzWS9oo6Z6Bu0q/1lpzwEUTmdkF
Wv4/2pv7bn6zu8+b2a9LusPMHumOKqpyr6QZd/+FmV0saZek11X4+kkuk3SXu/ePsup+zxqtgddZ
068xqabrzMxeqeUPkavd/bkif3YadY3Q5yW9uu/7U7u3pXlMmueWHZvM7A2SPiXpcnf/ae92d5/v
/u8zkr6k5T+nKovN3Z9z9190v/4PSR0zOynNc8uMq8+7NPBncMnvWZK6rrNUarrOhqrpGhtV5deZ
mXW0nMxvdPdbIx5S/rVWxgRBigmENZJ+IOk0vTQJcMbAYy7RygmE/0n73Apim5H0PUnnDdx+rKTj
+r7+tqSLKo7tN/TS+oI3SXqy+x6W9r6l/dmSjtdy/fPYqt6z7s9dr/gJvlqus5Sx1XKdpYir8mss
bWx1XWfdf/9nJX1iyGNKv9YKfaNHfAMu1vJM8Pclfah72wckfaDvDfrn7v0PSJod9tyKY/uUpIOS
9nX/m+ve/truL+M+Sftriu1Pu699n5Yn0s4b9tyq4up+/35JXxh4XqnvmZZHaU9LWtJybfLKBl1n
SbHVcp2liKuWayxNbDVeZ2/Wco3+/r7f18VVX2usFAWAQLBSFAACQUIHgECQ0AEgECR0AAgECR0A
AkFCB4BAkNABIBAkdAAIxP8DyrKqeAevNQgAAAAASUVORK5CYII=
"
>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[2]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># find theta. </span>
<span class="c1"># 1) use NumPy&#39;s matrix inverse function.</span>
<span class="c1"># 2) use dot method for matrix multiply.</span>

<span class="n">X_b</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">c_</span><span class="p">[</span><span class="n">np</span><span class="o">.</span><span class="n">ones</span><span class="p">((</span><span class="mi">100</span><span class="p">,</span> <span class="mi">1</span><span class="p">)),</span> <span class="n">X</span><span class="p">]</span> <span class="c1"># add x0 = 1 to each instance</span>
<span class="n">theta_best</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">linalg</span><span class="o">.</span><span class="n">inv</span><span class="p">(</span><span class="n">X_b</span><span class="o">.</span><span class="n">T</span><span class="o">.</span><span class="n">dot</span><span class="p">(</span><span class="n">X_b</span><span class="p">))</span><span class="o">.</span><span class="n">dot</span><span class="p">(</span><span class="n">X_b</span><span class="o">.</span><span class="n">T</span><span class="p">)</span><span class="o">.</span><span class="n">dot</span><span class="p">(</span><span class="n">y</span><span class="p">)</span>

<span class="c1"># results:</span>
<span class="nb">print</span><span class="p">(</span><span class="n">theta_best</span><span class="p">)</span> <span class="c1"># compare to generated data: y = 4 + 3x + noise</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area"><div class="prompt"></div>
<div class="output_subarea output_stream output_stdout output_text">
<pre>[[ 3.58859665]
 [ 3.41876053]]
</pre>
</div>
</div>

</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[3]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># make some predictions</span>

<span class="n">X_new</span>     <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([[</span><span class="mi">0</span><span class="p">],[</span><span class="mi">1</span><span class="p">],[</span><span class="mi">2</span><span class="p">]])</span>
<span class="n">X_new_b</span>   <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">c_</span><span class="p">[</span><span class="n">np</span><span class="o">.</span><span class="n">ones</span><span class="p">((</span><span class="mi">3</span><span class="p">,</span> <span class="mi">1</span><span class="p">)),</span> <span class="n">X_new</span><span class="p">]</span> <span class="c1"># add x0 = 1 to each instance</span>
<span class="n">y_predict</span> <span class="o">=</span> <span class="n">X_new_b</span><span class="o">.</span><span class="n">dot</span><span class="p">(</span><span class="n">theta_best</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="n">y_predict</span><span class="p">)</span>

<span class="c1"># then plot</span>

<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">X_new</span><span class="p">,</span> <span class="n">y_predict</span><span class="p">,</span> <span class="s2">&quot;r-&quot;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">X</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="s2">&quot;b.&quot;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">axis</span><span class="p">([</span><span class="mi">0</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">15</span><span class="p">])</span>
<span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area"><div class="prompt"></div>
<div class="output_subarea output_stream output_stdout output_text">
<pre>[[  3.58859665]
 [  7.00735719]
 [ 10.42611772]]
</pre>
</div>
</div>

<div class="output_area"><div class="prompt"></div>


<div class="output_png output_subarea ">
<img src="
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
"
>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[4]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># Scikit equivalent</span>
<span class="kn">from</span> <span class="nn">sklearn.linear_model</span> <span class="k">import</span> <span class="n">LinearRegression</span>
<span class="n">lin_reg</span> <span class="o">=</span> <span class="n">LinearRegression</span><span class="p">()</span>

<span class="n">lin_reg</span><span class="o">.</span><span class="n">fit</span><span class="p">(</span><span class="n">X</span><span class="p">,</span><span class="n">y</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;intercept &amp; coefficient:</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">lin_reg</span><span class="o">.</span><span class="n">intercept_</span><span class="p">,</span> <span class="n">lin_reg</span><span class="o">.</span><span class="n">coef_</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;predictions:</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">lin_reg</span><span class="o">.</span><span class="n">predict</span><span class="p">(</span><span class="n">X_new</span><span class="p">))</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area"><div class="prompt"></div>
<div class="output_subarea output_stream output_stdout output_text">
<pre>intercept &amp; coefficient:
 [ 3.58859665] [[ 3.41876053]]
predictions:
 [[  3.58859665]
 [  7.00735719]
 [ 10.42611772]]
</pre>
</div>
</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="Gradient-Descent">Gradient Descent<a class="anchor-link" href="#Gradient-Descent">&#182;</a></h3>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[5]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># Gradient Descent - Batch</span>
<span class="c1"># (Batch: math includes full training set X.)</span>

<span class="c1"># need to find partial derivative (slope) of the cost function</span>
<span class="c1"># for each model parameter (theta).</span>

<span class="n">theta_path_bgd</span> <span class="o">=</span> <span class="p">[]</span>

<span class="n">eta</span> <span class="o">=</span> <span class="mf">0.1</span> <span class="c1"># learning rate</span>
<span class="n">n_iterations</span> <span class="o">=</span> <span class="mi">1000</span>
<span class="n">m</span> <span class="o">=</span> <span class="mi">100</span>

<span class="n">theta</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">randn</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> <span class="c1"># random initialization</span>

<span class="k">for</span> <span class="n">iteration</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">n_iterations</span><span class="p">):</span>
    <span class="n">gradients</span> <span class="o">=</span> <span class="mi">2</span><span class="o">/</span><span class="n">m</span> <span class="o">*</span> <span class="n">X_b</span><span class="o">.</span><span class="n">T</span><span class="o">.</span><span class="n">dot</span><span class="p">(</span><span class="n">X_b</span><span class="o">.</span><span class="n">dot</span><span class="p">(</span><span class="n">theta</span><span class="p">)</span> <span class="o">-</span> <span class="n">y</span><span class="p">)</span>
    <span class="n">theta</span> <span class="o">=</span> <span class="n">theta</span> <span class="o">-</span> <span class="n">eta</span> <span class="o">*</span> <span class="n">gradients</span>
    <span class="n">theta_path_bgd</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">theta</span><span class="p">)</span>
    
<span class="nb">print</span><span class="p">(</span><span class="n">theta</span><span class="p">)</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area"><div class="prompt"></div>
<div class="output_subarea output_stream output_stdout output_text">
<pre>[[ 3.58859665]
 [ 3.41876053]]
</pre>
</div>
</div>

</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[6]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># Gradient Descent - Stochastic</span>
<span class="c1"># Stochastic: finds gradients based on random instances</span>
<span class="c1"># adv: better for huge datasets</span>
<span class="c1"># dis: much more erratic than batch GD </span>
<span class="c1">#      -- good for avoiding local minima</span>
<span class="c1">#      -- bad b/c may not find optimum sol&#39;n</span>

<span class="c1"># simulated annealing helps. (gradually reduces learning rate)</span>

<span class="n">theta_path_sgd</span> <span class="o">=</span> <span class="p">[]</span>

<span class="n">n_epochs</span><span class="p">,</span> <span class="n">t0</span><span class="p">,</span> <span class="n">t1</span> <span class="o">=</span> <span class="mi">50</span><span class="p">,</span> <span class="mi">5</span><span class="p">,</span> <span class="mi">50</span> <span class="c1"># learning schedule hyperparameters</span>

<span class="k">def</span> <span class="nf">learning_schedule</span><span class="p">(</span><span class="n">t</span><span class="p">):</span>
    <span class="k">return</span> <span class="n">t0</span> <span class="o">/</span> <span class="p">(</span><span class="n">t</span> <span class="o">+</span> <span class="n">t1</span><span class="p">)</span>

<span class="n">theta</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">randn</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> <span class="c1"># random initialization</span>

<span class="k">for</span> <span class="n">epoch</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">n_epochs</span><span class="p">):</span>
    <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">m</span><span class="p">):</span>
        <span class="n">random_index</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">randint</span><span class="p">(</span><span class="n">m</span><span class="p">)</span>
        <span class="n">xi</span> <span class="o">=</span> <span class="n">X_b</span><span class="p">[</span><span class="n">random_index</span><span class="p">:</span><span class="n">random_index</span><span class="o">+</span><span class="mi">1</span><span class="p">]</span>
        <span class="n">yi</span> <span class="o">=</span>   <span class="n">y</span><span class="p">[</span><span class="n">random_index</span><span class="p">:</span><span class="n">random_index</span><span class="o">+</span><span class="mi">1</span><span class="p">]</span>

        <span class="n">gradients</span> <span class="o">=</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">xi</span><span class="o">.</span><span class="n">T</span><span class="o">.</span><span class="n">dot</span><span class="p">(</span><span class="n">xi</span><span class="o">.</span><span class="n">dot</span><span class="p">(</span><span class="n">theta</span><span class="p">)</span> <span class="o">-</span> <span class="n">yi</span><span class="p">)</span>

        <span class="n">eta</span> <span class="o">=</span> <span class="n">learning_schedule</span><span class="p">(</span><span class="n">epoch</span> <span class="o">*</span> <span class="n">m</span> <span class="o">+</span> <span class="n">i</span><span class="p">)</span>
        <span class="n">theta</span> <span class="o">=</span> <span class="n">theta</span> <span class="o">-</span> <span class="n">eta</span> <span class="o">*</span> <span class="n">gradients</span>
        <span class="n">theta_path_sgd</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">theta</span><span class="p">)</span>
        
<span class="nb">print</span><span class="p">(</span><span class="n">theta</span><span class="p">)</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area"><div class="prompt"></div>
<div class="output_subarea output_stream output_stdout output_text">
<pre>[[ 3.6036273 ]
 [ 3.44079196]]
</pre>
</div>
</div>

</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[7]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># SGD Regression using Scikit:</span>

<span class="kn">from</span> <span class="nn">sklearn.linear_model</span> <span class="k">import</span> <span class="n">SGDRegressor</span>

<span class="n">sgd_reg</span> <span class="o">=</span> <span class="n">SGDRegressor</span><span class="p">(</span><span class="n">n_iter</span><span class="o">=</span><span class="mi">50</span><span class="p">,</span> <span class="n">penalty</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">eta0</span><span class="o">=</span><span class="mf">0.1</span><span class="p">)</span>
<span class="n">sgd_reg</span><span class="o">.</span><span class="n">fit</span><span class="p">(</span><span class="n">X</span><span class="p">,</span> <span class="n">y</span><span class="o">.</span><span class="n">ravel</span><span class="p">())</span>

<span class="nb">print</span><span class="p">(</span><span class="n">sgd_reg</span><span class="o">.</span><span class="n">intercept_</span><span class="p">,</span> <span class="n">sgd_reg</span><span class="o">.</span><span class="n">coef_</span><span class="p">)</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area"><div class="prompt"></div>
<div class="output_subarea output_stream output_stdout output_text">
<pre>[ 3.57214013] [ 3.39609675]
</pre>
</div>
</div>

</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[8]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># Gradient Descent - MiniBatch</span>
<span class="c1"># adv: performance boost via GPUs</span>

<span class="n">theta_path_mgd</span> <span class="o">=</span> <span class="p">[]</span>

<span class="n">n_iterations</span> <span class="o">=</span> <span class="mi">50</span>
<span class="n">minibatch_size</span> <span class="o">=</span> <span class="mi">20</span>

<span class="kn">import</span> <span class="nn">numpy.random</span> <span class="k">as</span> <span class="nn">rnd</span>

<span class="n">rnd</span><span class="o">.</span><span class="n">seed</span><span class="p">(</span><span class="mi">42</span><span class="p">)</span>
<span class="n">theta</span> <span class="o">=</span> <span class="n">rnd</span><span class="o">.</span><span class="n">randn</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span>  <span class="c1"># random initialization</span>

<span class="n">t0</span><span class="p">,</span> <span class="n">t1</span> <span class="o">=</span> <span class="mi">10</span><span class="p">,</span> <span class="mi">1000</span>
<span class="k">def</span> <span class="nf">learning_schedule</span><span class="p">(</span><span class="n">t</span><span class="p">):</span>
    <span class="k">return</span> <span class="n">t0</span> <span class="o">/</span> <span class="p">(</span><span class="n">t</span> <span class="o">+</span> <span class="n">t1</span><span class="p">)</span>

<span class="n">t</span> <span class="o">=</span> <span class="mi">0</span>
<span class="k">for</span> <span class="n">epoch</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">n_iterations</span><span class="p">):</span>
    <span class="n">shuffled_indices</span> <span class="o">=</span> <span class="n">rnd</span><span class="o">.</span><span class="n">permutation</span><span class="p">(</span><span class="n">m</span><span class="p">)</span>
    <span class="n">X_b_shuffled</span> <span class="o">=</span> <span class="n">X_b</span><span class="p">[</span><span class="n">shuffled_indices</span><span class="p">]</span>
    <span class="n">y_shuffled</span> <span class="o">=</span> <span class="n">y</span><span class="p">[</span><span class="n">shuffled_indices</span><span class="p">]</span>
        
    <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">m</span><span class="p">,</span> <span class="n">minibatch_size</span><span class="p">):</span>
        <span class="n">t</span> <span class="o">+=</span> <span class="mi">1</span>
        
        <span class="n">xi</span> <span class="o">=</span> <span class="n">X_b_shuffled</span><span class="p">[</span><span class="n">i</span><span class="p">:</span><span class="n">i</span><span class="o">+</span><span class="n">minibatch_size</span><span class="p">]</span>
        <span class="n">yi</span> <span class="o">=</span>   <span class="n">y_shuffled</span><span class="p">[</span><span class="n">i</span><span class="p">:</span><span class="n">i</span><span class="o">+</span><span class="n">minibatch_size</span><span class="p">]</span>
        
        <span class="n">gradients</span> <span class="o">=</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">xi</span><span class="o">.</span><span class="n">T</span><span class="o">.</span><span class="n">dot</span><span class="p">(</span><span class="n">xi</span><span class="o">.</span><span class="n">dot</span><span class="p">(</span><span class="n">theta</span><span class="p">)</span> <span class="o">-</span> <span class="n">yi</span><span class="p">)</span>
        <span class="n">eta</span> <span class="o">=</span> <span class="n">learning_schedule</span><span class="p">(</span><span class="n">t</span><span class="p">)</span>
        <span class="n">theta</span> <span class="o">=</span> <span class="n">theta</span> <span class="o">-</span> <span class="n">eta</span> <span class="o">*</span> <span class="n">gradients</span>
        <span class="n">theta_path_mgd</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">theta</span><span class="p">)</span>
        
<span class="nb">print</span><span class="p">(</span><span class="n">theta</span><span class="p">)</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area"><div class="prompt"></div>
<div class="output_subarea output_stream output_stdout output_text">
<pre>[[ 3.70412445]
 [ 3.54124923]]
</pre>
</div>
</div>

</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[9]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">theta_path_bgd</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">theta_path_bgd</span><span class="p">)</span>
<span class="n">theta_path_sgd</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">theta_path_sgd</span><span class="p">)</span>
<span class="n">theta_path_mgd</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">theta_path_mgd</span><span class="p">)</span>
</pre></div>

</div>
</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[10]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">(</span><span class="n">figsize</span><span class="o">=</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="mi">4</span><span class="p">))</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">theta_path_sgd</span><span class="p">[:,</span> <span class="mi">0</span><span class="p">],</span> <span class="n">theta_path_sgd</span><span class="p">[:,</span> <span class="mi">1</span><span class="p">],</span> <span class="s2">&quot;r-s&quot;</span><span class="p">,</span> <span class="n">linewidth</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s2">&quot;Stochastic&quot;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">theta_path_mgd</span><span class="p">[:,</span> <span class="mi">0</span><span class="p">],</span> <span class="n">theta_path_mgd</span><span class="p">[:,</span> <span class="mi">1</span><span class="p">],</span> <span class="s2">&quot;g-+&quot;</span><span class="p">,</span> <span class="n">linewidth</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s2">&quot;Mini-batch&quot;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">theta_path_bgd</span><span class="p">[:,</span> <span class="mi">0</span><span class="p">],</span> <span class="n">theta_path_bgd</span><span class="p">[:,</span> <span class="mi">1</span><span class="p">],</span> <span class="s2">&quot;b-o&quot;</span><span class="p">,</span> <span class="n">linewidth</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s2">&quot;Batch&quot;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">legend</span><span class="p">(</span><span class="n">loc</span><span class="o">=</span><span class="s2">&quot;upper right&quot;</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">14</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s2">r&quot;$\theta_0$&quot;</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">20</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s2">r&quot;$\theta_1$   &quot;</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">20</span><span class="p">,</span> <span class="n">rotation</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">axis</span><span class="p">([</span><span class="mf">2.5</span><span class="p">,</span> <span class="mf">4.5</span><span class="p">,</span> <span class="mf">2.3</span><span class="p">,</span> <span class="mf">3.9</span><span class="p">])</span>
<span class="c1">#save_fig(&quot;gradient_descent_paths_plot&quot;)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area"><div class="prompt"></div>


<div class="output_png output_subarea ">
<img src="
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
"
>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="Polynomial-Regression">Polynomial Regression<a class="anchor-link" href="#Polynomial-Regression">&#182;</a></h3>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[11]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># example quadratic equation + noise: y = 0.5*X^2 + X + 2 + noise</span>
<span class="n">m</span> <span class="o">=</span> <span class="mi">100</span>
<span class="n">X</span> <span class="o">=</span> <span class="mi">6</span> <span class="o">*</span> <span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">rand</span><span class="p">(</span><span class="n">m</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span> <span class="o">-</span> <span class="mi">3</span>
<span class="n">y</span> <span class="o">=</span> <span class="mf">0.5</span> <span class="o">*</span> <span class="n">X</span><span class="o">**</span><span class="mi">2</span> <span class="o">+</span> <span class="n">X</span> <span class="o">+</span> <span class="mi">2</span> <span class="o">+</span> <span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">randn</span><span class="p">(</span><span class="n">m</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>

<span class="n">plt</span><span class="o">.</span><span class="n">scatter</span><span class="p">(</span><span class="n">X</span><span class="p">,</span><span class="n">y</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area"><div class="prompt"></div>


<div class="output_png output_subarea ">
<img src="
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
SUVORK5CYII=
"
>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[12]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># fit using Scikit</span>

<span class="kn">from</span> <span class="nn">sklearn.preprocessing</span> <span class="k">import</span> <span class="n">PolynomialFeatures</span>
<span class="kn">from</span> <span class="nn">sklearn.linear_model</span>  <span class="k">import</span> <span class="n">LinearRegression</span>

<span class="c1"># caution: PolynomialFeatures converts array of n features</span>
<span class="c1"># into array of (n+d)!/d!n! features -- combinatorial explosions possible :-)</span>

<span class="n">poly_features</span> <span class="o">=</span> <span class="n">PolynomialFeatures</span><span class="p">(</span><span class="n">degree</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> <span class="n">include_bias</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="n">poly_features</span><span class="p">)</span>

<span class="c1"># X_poly: original feature of X, plus its square.</span>
<span class="n">X_poly</span> <span class="o">=</span> <span class="n">poly_features</span><span class="o">.</span><span class="n">fit_transform</span><span class="p">(</span><span class="n">X</span><span class="p">)</span>

<span class="c1">#print(X, X_poly)</span>
<span class="nb">print</span><span class="p">(</span><span class="n">X</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">X_poly</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>

<span class="c1"># fit it:</span>
<span class="n">lin_reg</span> <span class="o">=</span> <span class="n">LinearRegression</span><span class="p">()</span>
<span class="n">lin_reg</span><span class="o">.</span><span class="n">fit</span><span class="p">(</span><span class="n">X_poly</span><span class="p">,</span> <span class="n">y</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="n">lin_reg</span><span class="o">.</span><span class="n">intercept_</span><span class="p">,</span> <span class="n">lin_reg</span><span class="o">.</span><span class="n">coef_</span><span class="p">)</span>

<span class="c1"># result estimate: 0.48x(1)^2 + 0.99x(2) + 2.06</span>
<span class="c1"># original:        0.50x(1)^2 + 1.00x(2) + 2.00 + gaussian noise</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area"><div class="prompt"></div>
<div class="output_subarea output_stream output_stdout output_text">
<pre>PolynomialFeatures(degree=2, include_bias=False, interaction_only=False)
[ 2.38942838] [ 2.38942838  5.709368  ]
[ 1.9735233] [[ 0.95038538  0.52577032]]
</pre>
</div>
</div>

</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[13]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">X_new</span>      <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="o">-</span><span class="mi">3</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">100</span><span class="p">)</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
<span class="n">X_new_poly</span> <span class="o">=</span> <span class="n">poly_features</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">X_new</span><span class="p">)</span>
<span class="n">y_new</span>      <span class="o">=</span> <span class="n">lin_reg</span><span class="o">.</span><span class="n">predict</span><span class="p">(</span><span class="n">X_new_poly</span><span class="p">)</span>

<span class="c1">#testme = np.linspace(-3,3,20)</span>
<span class="c1">#print(testme, testme.reshape(20,1))</span>

<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">X</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="s2">&quot;b.&quot;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">X_new</span><span class="p">,</span> <span class="n">y_new</span><span class="p">,</span> <span class="s2">&quot;r-&quot;</span><span class="p">,</span> <span class="n">linewidth</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s2">&quot;Predictions&quot;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s2">&quot;$x_1$&quot;</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">14</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s2">&quot;$y$&quot;</span><span class="p">,</span> <span class="n">rotation</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">14</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">legend</span><span class="p">(</span><span class="n">loc</span><span class="o">=</span><span class="s2">&quot;upper left&quot;</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">14</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">axis</span><span class="p">([</span><span class="o">-</span><span class="mi">3</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">10</span><span class="p">])</span>
<span class="c1">#save_fig(&quot;quadratic_predictions_plot&quot;)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area"><div class="prompt"></div>


<div class="output_png output_subarea ">
<img src="
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
"
>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="Learning-Curves">Learning Curves<a class="anchor-link" href="#Learning-Curves">&#182;</a></h3>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[14]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># another way to check for underfit &amp; overfit:</span>
<span class="c1"># use learning curve plots to see performance vs training set size.</span>

<span class="kn">from</span> <span class="nn">sklearn.metrics</span> <span class="k">import</span> <span class="n">mean_squared_error</span>
<span class="kn">from</span> <span class="nn">sklearn.model_selection</span> <span class="k">import</span> <span class="n">train_test_split</span>

<span class="c1"># train model multiple times on various training subsets (of various sizes)</span>

<span class="k">def</span> <span class="nf">plot_learning_curves</span><span class="p">(</span><span class="n">model</span><span class="p">,</span> <span class="n">X</span><span class="p">,</span> <span class="n">y</span><span class="p">):</span>
    <span class="n">X_train</span><span class="p">,</span> <span class="n">X_val</span><span class="p">,</span> <span class="n">y_train</span><span class="p">,</span> <span class="n">y_val</span> <span class="o">=</span> <span class="n">train_test_split</span><span class="p">(</span><span class="n">X</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="n">test_size</span><span class="o">=</span><span class="mf">0.2</span><span class="p">,</span> <span class="n">random_state</span><span class="o">=</span><span class="mi">10</span><span class="p">)</span>
    <span class="n">train_errors</span><span class="p">,</span> <span class="n">val_errors</span> <span class="o">=</span> <span class="p">[],</span> <span class="p">[]</span>
    <span class="k">for</span> <span class="n">m</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">X_train</span><span class="p">)):</span>
        <span class="n">model</span><span class="o">.</span><span class="n">fit</span><span class="p">(</span><span class="n">X_train</span><span class="p">[:</span><span class="n">m</span><span class="p">],</span> <span class="n">y_train</span><span class="p">[:</span><span class="n">m</span><span class="p">])</span>
        <span class="n">y_train_predict</span> <span class="o">=</span> <span class="n">model</span><span class="o">.</span><span class="n">predict</span><span class="p">(</span><span class="n">X_train</span><span class="p">[:</span><span class="n">m</span><span class="p">])</span>
        <span class="n">y_val_predict</span> <span class="o">=</span> <span class="n">model</span><span class="o">.</span><span class="n">predict</span><span class="p">(</span><span class="n">X_val</span><span class="p">)</span>
        <span class="n">train_errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">mean_squared_error</span><span class="p">(</span><span class="n">y_train_predict</span><span class="p">,</span> <span class="n">y_train</span><span class="p">[:</span><span class="n">m</span><span class="p">]))</span>
        <span class="n">val_errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">mean_squared_error</span><span class="p">(</span><span class="n">y_val_predict</span><span class="p">,</span> <span class="n">y_val</span><span class="p">))</span>

    <span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">train_errors</span><span class="p">),</span> <span class="s2">&quot;r-+&quot;</span><span class="p">,</span> <span class="n">linewidth</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s2">&quot;Training set&quot;</span><span class="p">)</span>
    <span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">val_errors</span><span class="p">),</span> <span class="s2">&quot;b-&quot;</span><span class="p">,</span> <span class="n">linewidth</span><span class="o">=</span><span class="mi">3</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s2">&quot;Validation set&quot;</span><span class="p">)</span>
    <span class="n">plt</span><span class="o">.</span><span class="n">legend</span><span class="p">(</span><span class="n">loc</span><span class="o">=</span><span class="s2">&quot;upper right&quot;</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">14</span><span class="p">)</span>
    <span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s2">&quot;Training set size&quot;</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">14</span><span class="p">)</span>
    <span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s2">&quot;RMSE&quot;</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">14</span><span class="p">)</span>

<span class="n">lin_reg</span> <span class="o">=</span> <span class="n">LinearRegression</span><span class="p">()</span>
<span class="n">plot_learning_curves</span><span class="p">(</span><span class="n">lin_reg</span><span class="p">,</span> <span class="n">X</span><span class="p">,</span> <span class="n">y</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">axis</span><span class="p">([</span><span class="mi">0</span><span class="p">,</span> <span class="mi">80</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">3</span><span class="p">])</span>
<span class="c1">#save_fig(&quot;underfitting_learning_curves_plot&quot;)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area"><div class="prompt"></div>


<div class="output_png output_subarea ">
<img src="
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
Dz/8MOPHj+fDDz9k6dKlDBo0iH1RGiRDG8tFJGr1UUnWieZf//oXy5cvZ9CgQXzyyScceeSRBW0w
+fn5nHHGGSxdurTQ8MMPPzBgwICY9psMZb6XFEDNmoH3JU0YX30VeB98EiLiShmvvebG588PNIQb
UyZMmJDsCIo0b948hgwZwnnnnQe4g+z3339PixYtEhpH27Zt+eWXX9i4cSP169cHYLHHni5t2rSh
TZs2jB07losvvpgnn3ySYcOG0blzZ959910OPfRQKgd36QxSpUoV9u7dG7fPUZrKXQmjJBfv5ecX
ThjBJQwo3PD92WfF374xSVXKXWpj1bp1a2bPns2CBQvIzs7m8ssvZ+3atQmP489//jPNmzdn+PDh
fPXVV8yfP58bb7yxoPdSOFu3bmX06NF8/PHH/PLLL3z22WcsWLCA9u3bAzBmzBhycnI477zz+Pzz
z/npp5947733GDFiREEJqmXLlixbtowffviBTZs2kZeXl7DPXFzlLmGUpITx00/uAj2A+vWhUaPC
84PbMaynlDHxNWnSJDp27MiAAQPo27cvDRo0KNSFNlHS0tJ4/fXX2bJlC926dWPkyJHceuutAFSt
WjXsOunp6WzYsIELLriA1q1b89e//pUTTjiBu+++G4DmzZvz2WefsXfvXgYMGECHDh0YPXo0mZmZ
BSWOK664gkMPPZROnTpRv359srKyEvOBS0C0lBq2EqVr167apUsWkye78UcegVGjireNV18FXy83
+veHOXMKz9+7F2rXdq8A69YF2jWMibfs7GzatWuX7DAMsGjRInr27Mny5cs58sgjkx1OsRX1WxKR
JaparBseWQmDyA3efhkZhe8jZdVSxpRPM2bM4P3332fVqlXMnTuXkSNH0r179zKZLEpDuUgYsTZ6
ByeMkF53BYKrpSxhGFM+bd26lVGjRtG2bVsuvPBCOnXqxNtvv53ssFJGueglFWujd7QSBriG73//
2723hGFM+TRy5EhGjhyZ7DBSVrkoYcRSJbV1K6xa5d6np7tbgoTTq1fgfVYW7NlTvP0YY0xZV+ET
xtdfB963awdVqoRfrkEDaNXKvd+3D3y3nzHGmAqjwicML+0Xfl661y5bBn/5C5x9tuux9d13pXaH
BWOMSagKnzCKumAvVPAFfJ9+Wnhefr57Kl/37u6q8Bkz4MoroW1baNLEvd+2rXixGWNMKklYwhCR
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
"
>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[15]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># repeat exercise for 10th-degree polynomial</span>

<span class="kn">from</span> <span class="nn">sklearn.pipeline</span> <span class="k">import</span> <span class="n">Pipeline</span>

<span class="n">polynomial_regression</span> <span class="o">=</span> <span class="n">Pipeline</span><span class="p">((</span>
    <span class="p">(</span><span class="s2">&quot;poly_features&quot;</span><span class="p">,</span> <span class="n">PolynomialFeatures</span><span class="p">(</span><span class="n">degree</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span> <span class="n">include_bias</span><span class="o">=</span><span class="kc">False</span><span class="p">)),</span>
    <span class="p">(</span><span class="s2">&quot;sgd_reg&quot;</span><span class="p">,</span> <span class="n">LinearRegression</span><span class="p">()),</span>
<span class="p">))</span>

<span class="n">plot_learning_curves</span><span class="p">(</span><span class="n">polynomial_regression</span><span class="p">,</span> <span class="n">X</span><span class="p">,</span> <span class="n">y</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">axis</span><span class="p">([</span><span class="mi">0</span><span class="p">,</span><span class="mi">80</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">3</span><span class="p">])</span>
<span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>

<span class="c1"># note: training error rate much lower than on Linear Regression</span>
<span class="c1"># note: training/validation gap closes to zero. good fit?</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area"><div class="prompt"></div>


<div class="output_png output_subarea ">
<img src="
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
Odc6/fTT86w744wzWLMm79sA7dq1y50vX748NWvWZOfOnfme99Zbb+Waa67hvPPO41//+leeival
S5cyd+5ckpOTc6dmzZoBsGHDhojijzV709vEhFV6F69EPmNEYvDgwUyfPp1ff/2VKVOmUKNGDfr0
6ZO7fd68eQwYMIDevXvz4YcfsmzZMu69997c4UpjZeDAgSxbtozHH3+cBQsWsHz5curXrx+z6wQP
2ZoU9OKRiOQpmgt23333sXr1ai666CLmzZtHmzZteOWVVwA3pvnFF1/M8uXL80zr16+nV69eMYm/
qCxhmJiwJwwDcOmll1KxYkVee+01Jk+ezNVXX53nZjp//nyaNGnCXXfdRefOnWnRokXIllUFOemk
k46ocwhenjdvHrfccgu9e/emdevWVKlShe3bt+duL1u2LGXLliUrK6vQa82fP/+Ic+eM2R2Nli1b
MnLkSGbOnMmgQYN46aWXAOjYsSOrV6+madOmNG/ePM+UnJwMuKeYwmIvDpYwTEzYexgGXLPUK6+8
knHjxrFhw4YjiqNatmzJpk2beP3119mwYQMTJ07krbfeiugaI0aMYPLkybz00kusW7cut/I7+Dqv
vvoqa9euZfHixfTv358KFSrkbhcRGjduzJw5c9i+fXtuZXiwO+64gylTpvDss8+yfv16Hn/8cd54
4w3uvPPOiGIOdODAAW6++Wa++OILNm7cyNdff838+fNzk9DNN9/M7t27ueKKK1i8eDE//vgjs2fP
ZsiQIRw6dAhwrbxWrlzJunXr2L17N5mZmUWOJxKWMExMFPUJY8MGmDMHCnh6NyXMkCFD2LNnD6ed
dtoR40n37duXUaNGccstt9C+fXs+//xzxo8fH9H5BwwYwN13382YMWPo2LEj33//PSNG5O2absqU
Kezdu5cOHTpw5ZVXcsMNN9CoUaM8+zz66KPMnj2bRo0a0blz55DXuvTSS3nssceYMGECrVu35umn
n2bSpElRFQ2VK1eO3bt3c/XVV9OyZUv69evHmWeeyYQJEwBo2LAh8+fPJysriwsuuIDWrVtz0003
Ubly5dyntRtuuIEWLVrQqVMnatWqlW8rr1gTjbSQ0mNSU1M1LS0t0WGUeocPg69VIGXLwgsvwOrV
sG4dtGoF48b5t+d4800YOBAyM+Hee+Gf/4x72J60du3aI260xhRFQX9LIrJUVVMjOZ8N0WpiokIF
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
/w/wE18KcZc4GwAAAABJRU5ErkJggg==
"
>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="Bias/Variance-Tradeoff">Bias/Variance Tradeoff<a class="anchor-link" href="#Bias/Variance-Tradeoff">&#182;</a></h3><ul>
<li>Bias: the part of generalization error due to wrong assumptions.</li>
<li>Variance: due to model sensitivity to small training variations. (More common in high-dimensional models.)</li>
<li><p>Irreducibility: due to data noise.</p>
</li>
<li><p>Rule of thumb: increasing model complexity increases variance &amp; reduces bias (and vice versa.)</p>
</li>
</ul>

</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="Regularization">Regularization<a class="anchor-link" href="#Regularization">&#182;</a></h3><ul>
<li>Used to reduce overfit by constraining the model (ex: reducing the # of degrees in a polynomial).</li>
</ul>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[16]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># Ridge -- regularization term added to cost function.</span>
<span class="c1"># alpha param -- forces model weights to minimal values. higher alpha = &quot;flatter&quot; function (converge to mean)</span>
</pre></div>

</div>
</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<ul>
<li>Cost function:
<img src="ridge-regression-cost-function.png" alt="ridge-regression-cost-function"></li>
</ul>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[17]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># build dataset</span>

<span class="kn">import</span> <span class="nn">numpy.random</span> <span class="k">as</span> <span class="nn">rnd</span>

<span class="n">rnd</span><span class="o">.</span><span class="n">seed</span><span class="p">(</span><span class="mi">42</span><span class="p">)</span>
<span class="n">m</span> <span class="o">=</span> <span class="mi">20</span>
<span class="n">X</span> <span class="o">=</span> <span class="mi">3</span> <span class="o">*</span> <span class="n">rnd</span><span class="o">.</span><span class="n">rand</span><span class="p">(</span><span class="n">m</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
<span class="n">y</span> <span class="o">=</span> <span class="mi">1</span> <span class="o">+</span> <span class="mf">0.5</span> <span class="o">*</span> <span class="n">X</span> <span class="o">+</span> <span class="n">rnd</span><span class="o">.</span><span class="n">randn</span><span class="p">(</span><span class="n">m</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span> <span class="o">/</span> <span class="mf">1.5</span>
<span class="n">X_new</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">100</span><span class="p">)</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>

<span class="c1"># plot it</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">X</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="s2">&quot;b.&quot;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s2">&quot;$x_1$&quot;</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">18</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s2">&quot;$y$&quot;</span><span class="p">,</span> <span class="n">rotation</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">18</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">axis</span><span class="p">([</span><span class="mi">0</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">4</span><span class="p">])</span>

<span class="c1"># apply Ridge regression</span>
<span class="kn">from</span> <span class="nn">sklearn.linear_model</span> <span class="k">import</span> <span class="n">Ridge</span>

<span class="n">ridge_reg</span> <span class="o">=</span> <span class="n">Ridge</span><span class="p">(</span><span class="n">alpha</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">solver</span><span class="o">=</span><span class="s2">&quot;cholesky&quot;</span><span class="p">)</span>
<span class="n">ridge_reg</span><span class="o">.</span><span class="n">fit</span><span class="p">(</span><span class="n">X</span><span class="p">,</span><span class="n">y</span><span class="p">)</span>
<span class="n">ridge_reg</span><span class="o">.</span><span class="n">predict</span><span class="p">([[</span><span class="mf">0.0</span><span class="p">],[</span><span class="mf">1.5</span><span class="p">],[</span><span class="mf">2.0</span><span class="p">],[</span><span class="mf">3.0</span><span class="p">]])</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area"><div class="prompt output_prompt">Out[17]:</div>


<div class="output_text output_subarea output_execute_result">
<pre>array([[ 1.00650911],
       [ 1.55071465],
       [ 1.73211649],
       [ 2.09492018]])</pre>
</div>

</div>

<div class="output_area"><div class="prompt"></div>


<div class="output_png output_subarea ">
<img src="
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
"
>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[18]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># Ridge using SGD:</span>
<span class="n">sgd_reg</span> <span class="o">=</span> <span class="n">SGDRegressor</span><span class="p">(</span><span class="n">penalty</span><span class="o">=</span><span class="s2">&quot;l2&quot;</span><span class="p">)</span> 
<span class="n">sgd_reg</span><span class="o">.</span><span class="n">fit</span><span class="p">(</span><span class="n">X</span><span class="p">,</span><span class="n">y</span><span class="o">.</span><span class="n">ravel</span><span class="p">())</span>
<span class="n">ridge_reg</span><span class="o">.</span><span class="n">predict</span><span class="p">([[</span><span class="mf">0.0</span><span class="p">],[</span><span class="mf">1.5</span><span class="p">],[</span><span class="mf">2.0</span><span class="p">],[</span><span class="mf">3.0</span><span class="p">]])</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area"><div class="prompt output_prompt">Out[18]:</div>


<div class="output_text output_subarea output_execute_result">
<pre>array([[ 1.00650911],
       [ 1.55071465],
       [ 1.73211649],
       [ 2.09492018]])</pre>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[19]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># Lasso -- similar to Ridge, also adds regularization term</span>
<span class="c1"># uses L1 norm (instead of 1/2 square of L2 norm, as in Ridge.)</span>
<span class="c1"># -- tends to force least important features to zero.</span>

<span class="kn">from</span> <span class="nn">sklearn.linear_model</span> <span class="k">import</span> <span class="n">Lasso</span>

<span class="n">lasso_reg</span> <span class="o">=</span> <span class="n">Lasso</span><span class="p">(</span><span class="n">alpha</span><span class="o">=</span><span class="mf">0.1</span><span class="p">)</span>
<span class="n">lasso_reg</span><span class="o">.</span><span class="n">fit</span><span class="p">(</span><span class="n">X</span><span class="p">,</span><span class="n">y</span><span class="p">)</span>
<span class="n">lasso_reg</span><span class="o">.</span><span class="n">predict</span><span class="p">([[</span><span class="mf">0.0</span><span class="p">],[</span><span class="mf">1.5</span><span class="p">],[</span><span class="mf">2.0</span><span class="p">],[</span><span class="mf">3.0</span><span class="p">]])</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area"><div class="prompt output_prompt">Out[19]:</div>


<div class="output_text output_subarea output_execute_result">
<pre>array([ 1.14537356,  1.53788174,  1.66871781,  1.93038993])</pre>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[20]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># Elastic Net -- midddle ground.</span>
<span class="c1"># regularization = mix of Ridge &amp; Lasso (mix ratio &quot;r&quot;)</span>

<span class="kn">from</span> <span class="nn">sklearn.linear_model</span> <span class="k">import</span> <span class="n">ElasticNet</span>

<span class="n">elastic_net</span> <span class="o">=</span> <span class="n">ElasticNet</span><span class="p">(</span><span class="n">alpha</span><span class="o">=</span><span class="mf">0.1</span><span class="p">,</span> <span class="n">l1_ratio</span><span class="o">=</span><span class="mf">0.5</span><span class="p">)</span>
<span class="n">elastic_net</span><span class="o">.</span><span class="n">fit</span><span class="p">(</span><span class="n">X</span><span class="p">,</span><span class="n">y</span><span class="p">)</span>
<span class="n">elastic_net</span><span class="o">.</span><span class="n">predict</span><span class="p">([[</span><span class="mf">0.0</span><span class="p">],[</span><span class="mf">1.5</span><span class="p">],[</span><span class="mf">2.0</span><span class="p">],[</span><span class="mf">3.0</span><span class="p">]])</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area"><div class="prompt output_prompt">Out[20]:</div>


<div class="output_text output_subarea output_execute_result">
<pre>array([ 1.08639303,  1.54333232,  1.69564542,  2.00027161])</pre>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[21]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># Early Stopping -- stop training when minimum validation error reached</span>

<span class="c1"># build dataset</span>
<span class="n">rnd</span><span class="o">.</span><span class="n">seed</span><span class="p">(</span><span class="mi">42</span><span class="p">)</span>
<span class="n">m</span> <span class="o">=</span> <span class="mi">100</span>
<span class="n">X</span> <span class="o">=</span> <span class="mi">6</span> <span class="o">*</span> <span class="n">rnd</span><span class="o">.</span><span class="n">rand</span><span class="p">(</span><span class="n">m</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span> <span class="o">-</span> <span class="mi">3</span>
<span class="n">y</span> <span class="o">=</span> <span class="mi">2</span> <span class="o">+</span> <span class="n">X</span> <span class="o">+</span> <span class="mf">0.5</span> <span class="o">*</span> <span class="n">X</span><span class="o">**</span><span class="mi">2</span> <span class="o">+</span> <span class="n">rnd</span><span class="o">.</span><span class="n">randn</span><span class="p">(</span><span class="n">m</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>

<span class="n">X_train</span><span class="p">,</span> <span class="n">X_val</span><span class="p">,</span> <span class="n">y_train</span><span class="p">,</span> <span class="n">y_val</span> <span class="o">=</span> <span class="n">train_test_split</span><span class="p">(</span><span class="n">X</span><span class="p">[:</span><span class="mi">50</span><span class="p">],</span> <span class="n">y</span><span class="p">[:</span><span class="mi">50</span><span class="p">]</span><span class="o">.</span><span class="n">ravel</span><span class="p">(),</span> <span class="n">test_size</span><span class="o">=</span><span class="mf">0.5</span><span class="p">,</span> <span class="n">random_state</span><span class="o">=</span><span class="mi">10</span><span class="p">)</span>

<span class="kn">from</span> <span class="nn">sklearn.preprocessing</span> <span class="k">import</span> <span class="n">StandardScaler</span>
<span class="kn">from</span> <span class="nn">sklearn.pipeline</span> <span class="k">import</span> <span class="n">Pipeline</span>

<span class="n">poly_scaler</span> <span class="o">=</span> <span class="n">Pipeline</span><span class="p">((</span>
    <span class="p">(</span><span class="s2">&quot;poly_features&quot;</span><span class="p">,</span> <span class="n">PolynomialFeatures</span><span class="p">(</span>
        <span class="n">degree</span><span class="o">=</span><span class="mi">90</span><span class="p">,</span> 
        <span class="n">include_bias</span><span class="o">=</span><span class="kc">False</span><span class="p">)),</span>
    <span class="p">(</span><span class="s2">&quot;std_scaler&quot;</span><span class="p">,</span> <span class="n">StandardScaler</span><span class="p">()),</span>
    <span class="p">))</span>

<span class="n">X_train_poly_scaled</span> <span class="o">=</span> <span class="n">poly_scaler</span><span class="o">.</span><span class="n">fit_transform</span><span class="p">(</span><span class="n">X_train</span><span class="p">)</span>
<span class="n">X_val_poly_scaled</span>   <span class="o">=</span> <span class="n">poly_scaler</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">X_val</span><span class="p">)</span>

<span class="n">sgd_reg</span> <span class="o">=</span> <span class="n">SGDRegressor</span><span class="p">(</span><span class="n">n_iter</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
                       <span class="n">penalty</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
                       <span class="n">eta0</span><span class="o">=</span><span class="mf">0.0005</span><span class="p">,</span>
                       <span class="n">warm_start</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
                       <span class="n">learning_rate</span><span class="o">=</span><span class="s2">&quot;constant&quot;</span><span class="p">,</span>
                       <span class="n">random_state</span><span class="o">=</span><span class="mi">42</span><span class="p">)</span>

<span class="n">n_epochs</span> <span class="o">=</span> <span class="mi">500</span>
<span class="n">train_errors</span><span class="p">,</span> <span class="n">val_errors</span> <span class="o">=</span> <span class="p">[],</span> <span class="p">[]</span>

<span class="k">for</span> <span class="n">epoch</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">n_epochs</span><span class="p">):</span>
    <span class="n">sgd_reg</span><span class="o">.</span><span class="n">fit</span><span class="p">(</span><span class="n">X_train_poly_scaled</span><span class="p">,</span> <span class="n">y_train</span><span class="p">)</span>

    <span class="n">y_train_predict</span> <span class="o">=</span> <span class="n">sgd_reg</span><span class="o">.</span><span class="n">predict</span><span class="p">(</span><span class="n">X_train_poly_scaled</span><span class="p">)</span>
    <span class="n">y_val_predict</span>   <span class="o">=</span> <span class="n">sgd_reg</span><span class="o">.</span><span class="n">predict</span><span class="p">(</span><span class="n">X_val_poly_scaled</span><span class="p">)</span>

    <span class="n">train_errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">mean_squared_error</span><span class="p">(</span><span class="n">y_train_predict</span><span class="p">,</span> <span class="n">y_train</span><span class="p">))</span>
    <span class="n">val_errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">mean_squared_error</span><span class="p">(</span><span class="n">y_val_predict</span><span class="p">,</span> <span class="n">y_val</span><span class="p">))</span>

<span class="n">best_epoch</span>    <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">argmin</span><span class="p">(</span><span class="n">val_errors</span><span class="p">)</span>
<span class="n">best_val_rmse</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">val_errors</span><span class="p">[</span><span class="n">best_epoch</span><span class="p">])</span>

<span class="n">plt</span><span class="o">.</span><span class="n">annotate</span><span class="p">(</span><span class="s1">&#39;Best model&#39;</span><span class="p">,</span>
             <span class="n">xy</span><span class="o">=</span><span class="p">(</span><span class="n">best_epoch</span><span class="p">,</span> <span class="n">best_val_rmse</span><span class="p">),</span>
             <span class="n">xytext</span><span class="o">=</span><span class="p">(</span><span class="n">best_epoch</span><span class="p">,</span> <span class="n">best_val_rmse</span> <span class="o">+</span> <span class="mi">1</span><span class="p">),</span>
             <span class="n">ha</span><span class="o">=</span><span class="s2">&quot;center&quot;</span><span class="p">,</span>
             <span class="n">arrowprops</span><span class="o">=</span><span class="nb">dict</span><span class="p">(</span><span class="n">facecolor</span><span class="o">=</span><span class="s1">&#39;black&#39;</span><span class="p">,</span> <span class="n">shrink</span><span class="o">=</span><span class="mf">0.05</span><span class="p">),</span>
             <span class="n">fontsize</span><span class="o">=</span><span class="mi">16</span><span class="p">,</span>
            <span class="p">)</span>

<span class="n">best_val_rmse</span> <span class="o">-=</span> <span class="mf">0.03</span>  <span class="c1"># just to make the graph look better</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">([</span><span class="mi">0</span><span class="p">,</span> <span class="n">n_epochs</span><span class="p">],</span> <span class="p">[</span><span class="n">best_val_rmse</span><span class="p">,</span> <span class="n">best_val_rmse</span><span class="p">],</span> <span class="s2">&quot;k:&quot;</span><span class="p">,</span> <span class="n">linewidth</span><span class="o">=</span><span class="mi">2</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">val_errors</span><span class="p">),</span> <span class="s2">&quot;b-&quot;</span><span class="p">,</span> <span class="n">linewidth</span><span class="o">=</span><span class="mi">3</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s2">&quot;Validation set&quot;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">train_errors</span><span class="p">),</span> <span class="s2">&quot;r--&quot;</span><span class="p">,</span> <span class="n">linewidth</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s2">&quot;Training set&quot;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">legend</span><span class="p">(</span><span class="n">loc</span><span class="o">=</span><span class="s2">&quot;upper right&quot;</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">14</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s2">&quot;Epoch&quot;</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">14</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s2">&quot;RMSE&quot;</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">14</span><span class="p">)</span>
<span class="c1">#save_fig(&quot;early_stopping_plot&quot;)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area"><div class="prompt"></div>


<div class="output_png output_subarea ">
<img src="
AAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xd4VFX6wPHvSwolgQRIAGnSQUAUDIIigoIiWBBhkRVU
lGIXWXtZAbG7Kiu4rkqzLexiQUEU0R8WFIUgRRCUotRAiHQJkJD398eZyWSSDAkpMynv53nuM/ee
c2fuuRHnnXPuKaKqGGOMMbmpEOoCGGOMKbksSBhjjAnIgoQxxpiALEgYY4wJyIKEMcaYgCxIGGOM
CciChDHGmIAsSBhjjAnIgoQxxpiAwkNdgMKKi4vTRo0ahboYxhhTqixbtixFVePzOq/UB4lGjRqR
mJgY6mIYY0ypIiKb83OeNTcZY4wJyIKEMcaYgCxIGGOMCciChDHGmIAsSBhjjAmo1PduMqYsOnDg
AMnJyaSlpYW6KKYUioiIoFatWlSrVq3Qn1Uug8Tx4/D77/DLL5CRAZddFuoSGeNz4MABdu3aRb16
9ahcuTIiEuoimVJEVUlNTWX79u0AhQ4U5TJIJCZC585uv21bCxKmZElOTqZevXpUqVIl1EUxpZCI
UKVKFerVq8eOHTsKHSTK5TOJli19++vXu5qFMSVFWloalStXDnUxTClXuXLlImmuLJdBIjYWatVy
+0ePwpYtoS2PMdlZE5MprKL6N1QugwT41yZ++SV05TDGmJLMggQWJIwpSSZPnkxsbGzA49w8/fTT
NGvWrMivbSxIABYkjCmsK664gh49euSat3btWkSEzz77rECfPXjwYH799dfCFC+H9PR0RITZs2cX
+7WKw5AhQ7jyyiuDci0LEliQMKawhg0bxsKFC/n9999z5E2ZMoVTTz2Vnj17FuizK1euTC3vQ8Ri
FsxrlRYWJLAgYUxhXXrppdSuXZtp06b5paelpfHWW29x4403UqGC+7q55557aNGiBZUrV6Zx48Y8
8MADHD16NOBn59YE9NRTT1G7dm2qVq3K0KFDOXz4sF/+Dz/8wEUXXURcXBzVqlWja9euLFmyJDPf
uwZNv379EJHMpqrcrvWvf/2Lpk2bEhkZSfPmzZk6dWpmnrdGMnnyZPr3709UVBRNmzZlxowZJ/x7
rVy5kgsvvJBq1apRtWpVzjzzTL766qvM/NWrV9O7d2+io6OpVasWgwcPZteuXQA88sgjvPPOO3z4
4YeICCLCokWLTni9wii3QaJxYwj3jBLZvh0OHQpteYwpzcLDw7n++uuZPn06GRkZmelz5swhJSWF
G264ITOtWrVqTJ8+nbVr1zJp0iTefvttnn766Xxf6z//+Q9jx47l8ccfZ9myZTRp0oQJEyb4nXPw
4EGuv/56vvnmG3744QdOP/10evfuzd69ewFYunQpANOmTSMpKYnvv/8+12vNmjWLu+66i7vvvpvV
q1dz2223MXLkSD755BO/88aNG0f//v1ZuXIlV111FUOHDmXbtm0B72HQoEE0aNCAJUuWsHz5ch59
9FEqVaoEwPbt2+nWrRvt27cnMTGRBQsWsG/fPvr164eq8sADD9C/f38uueQSkpKSSEpKolOnTvn+
+500VS3V21lnnaUF1bKlKrht2bICf4wxRernn3/Okeb9dxqKLb9+/fVXBXT+/PmZaX369NFLLrnk
hO+bOHGitmzZMvP49ddf15iYmIDHHTt21JtvvtnvM7p166ZNmzYNeI2MjAyNi4vTGTNmqKpqWlqa
AvrBBx/4nZf9WmeffbaOGDHC75zBgwdrt27d/D7nkUceycw/evSoRkZGZl4rN1WqVNG3334717wH
H3xQL774Yr+05ORkBXSZ54tq8ODB2rdv34Cf75XbvyUvIFHz8R1bbmsSYE1OxhSl5s2b061bt8zm
mB07djB//nyGDRvmd95///tfunTpQp06dYiOjuaee+5hy0kMVlq7di3nnHOOX1r24127djFy5Eha
tGhBTEwMVatW5Y8//jip63iv1aVLF7+08847j59//tkvrV27dpn7kZGRxMXFkZycHPBz//a3vzF0
6FB69uzJk08+6fewfNmyZSxcuJDo6OjMrXHjxgBs3LjxpMpfFCxIeFiQMKbwhg0bxuzZs9mzZw/T
p0+nRo0a9O3bNzN/0aJFDB48mD59+jBnzhyWL1/OY489xrFjx4q0HEOGDGH58uVMmDCB7777jhUr
VlC3bt0iu072gWoRERE58rM2u2U3fvx41qxZw2WXXcaiRYto27Ytb7zxBgAZGRlcfvnlrFixwm9b
v349vXv3LpLynwwLEh4WJExJFsoGp5MxYMAAKlWqxNtvv83UqVO57rrr/L5Av/32W0499VQefvhh
OnbsSPPmzXPtEXUip512Wo5nCNmPFy1axJ133kmfPn1o06YNUVFR7Ny5MzM/LCyMsLAwjucxJ89p
p53Gt99+m+OzW7dufVJlzk2LFi246667mDdvHtdffz1TpkwBoEOHDqxZs4ZGjRrRrFkzvy06Ohpw
tZW8yl5ULEh4WJAwpvAqV67MNddcw9ixY9m4cWOOpqYWLVqwZcsWZsyYwcaNG5k0aRL/+9//Tuoa
o0aNYurUqUyZMoVff/018wF29uu89dZbrF27liVLljBo0CAqVqyYmS8iNGzYkC+++IKdO3dmPtDO
7t5772X69Om88sorrF+/ngkTJjBz5kzuu+++kypzVocOHeKOO+7gq6++YvPmzSxevJhvv/02M/Dc
cccdpKSk8Ne//pUlS5awadMmFixYwPDhw0lNTQVc76xVq1bx66+/kpKSQnp6eoHLk6f8PLgoyVth
HlwnJ/t+L0VFqWZkFPijjCkyJ3rYWBosW7ZMAT333HNzzb/33ns1Li5Oo6OjtX///jpp0iQNCwvL
zM/rwbWq6vjx4zU+Pl6joqJ0yJAh+sgjj/g9uP7xxx+1Y8eOWrFiRW3atKm+88472rJlSx0/fnzm
OR988IE2a9ZMw8PDM9+b27UmTZqkTZo00YiICG3WrJlOnjw5My/QA/B69erpiy++mOv9p6am6qBB
g7Rhw4YaGRmpp5xyio4cOVIPHjyYec66deu0X79+Ghsbq5UqVdIWLVroHXfcoWlpaaqqunPnTu3R
o4dGR0croN98802u1yqKB9eiJ1ufLGESEhI0MTGxQO9VhZo1wfsjYutWqF+/CAtnTAGsXbuW0047
LdTFMGXAif4ticgyVU3I6zPKdXOTiDU5GWPMiZTrIAEWJIwx5kSCFiREpJKILBGRlSKyRkTG5XJO
dxHZLyIrPNujxV0uCxLGGBNYMJcvPQpcqKqHRCQCWCQin6hq9vHw36hq0BYUzRok1q0L1lWNMaZ0
CFqQ8DxN986QFOHZQv7U3GoSxhgTWFCfSYhImIisAJKBBar6Qy6nnSsiq0TkExFpU9xlatYMwsLc
/ubNcPBgcV/RGGNKj6AGCVU9rqpnAvWBs0WkbbZTfgQaqmo7YCIwO/tnAIjISBFJFJHE3bt3F6pM
FStCq1a+459+KtTHGWNMmRKS3k2qug9YCFySLf2Aqh7y7M8DIkQkLpf3v6aqCaqaEB8fX+jynHGG
b3/lykJ/nDHGlBnB7N0ULyKxnv3KwEXAumzn1BHPzFkicranfH8Ud9ksSBhjTO6CWZM4BVgoIquA
pbhnEnNF5GYRudlzzgBgtYisBF4CBmlxDQn/+GPo3RteftmChDEl3KBBgxgwYMBJvadz587cc889
xVSi8iOYvZtWAe1zSf93lv1JwKSgFCglBT79FKKjOaP/bZnJP/0EGRlQodwPMzQm/7JPnZ2dd9W6
gnr11Vc52d+L8+bNyzGFd0k0aNAg0tPTeffdd0NdlFwFc5xEydKhg3tdvpzatSE+Hnbvhj//hI0b
oXnz0BbPmNIkKSkpc3/u3LmMGDHCL61y5cq5vi8tLS1fX+QxMTEnXaYaNWqc9HtMTuX393KrVq5r
08aNyP591uRkTCHUqVMnc4uNjc2RFhMTw7p16xARZs2aRbdu3ahUqRJvvPEGu3bt4uqrr6ZevXpU
qVKFtm3b8s477/h9fvbmps6dOzN69GjuvfdeatSoQZ06dXjwwQf9ahvZm5vq1KnDM888w4033kjV
qlVp0KABL730kt91fv75Z7p06UKlSpVo06YNX3zxBeHh4cycOTPgvS9fvpzu3btTtWpVqlatSvv2
7Vm0aFFm/k8//cQll1xCdHQ0tWvXZsiQIXh7ZT7wwAP897//5b333kNEEJGA622HSvkNEhERcPrp
bn/FCr8gsWpVaIpkTHnwwAMPMHr0aNauXUufPn1ITU2lc+fOfPzxx6xevZpbbrmF66+/3u+LNjdT
p04lJiaGH374geeff55nn32W2bNz7TWf6R//+Adnn302y5cvZ9SoUYwaNYoff/wRgPT0dPr27UvV
qlVZsmQJr776Kg8++OAJV5gDGDhwII0bNyYxMZHly5fzyCOPZK5dsXXrVs4//3w6duzIsmXLmD9/
PikpKfTv3x+ARx55hL59+3LZZZeRlJREUlISZ511Vn7/lMGRn/nES/JWmPUk9I47VM86S/Wzz/TN
N31rS1xxRcE/0pjCCrgGQG4Lx40YUXz5BTRr1iwll/evXbtWAZ00aVKen9G3b1+97bbbMo+vvvpq
7d+/f+Zxp06dtHv37n7vOe+88/ze06lTJ7377rszj2vXrq1Dhw71e0/9+vX1ueeeU1XV2bNna0RE
hO7atSsz/4svvlBAZ8yYkWs5MzIytGLFijpz5sxc8++9917t06ePX1pSUpICunLlylzvrSgVxXoS
5feZBECWquaZWQbRZVvkyhhThBIS/JcwSE9P54knnuDdd99l+/btHDt2jKNHj+a5nnO7du38juvW
rUtycnKB37Nu3ToaNWpErVq1MvM7dep0ws8TEUaPHs2QIUOYPHkyF154IQMGDKC556HmsmXL+Oab
bzKXHc1q48aNOcpTEpXvIOGlymmnCVWqwOHDsH077NgBdeuGumDGZJFX757izi8iUVFRfsdPPPEE
L7/8MhMmTMhcj/ruu+/m6NGjJ/yc7A+8RSTPdZ9ze09ezUl5eeqppxg6dCjz5s3js88+Y8yYMUyb
No3BgweTkZHBlVdeyZNPPpnjfXXq1CnUdYOl/D6TANfX9cILoUYNwo8dJmtT4NKloSuWMeXJokWL
6NevH9dccw1nnHEGTZo04ddffw16OVq1asXmzZvJOtXPkiVL8vXeli1bMnr0aD755BMGDx7MlClT
AOjQoQNr1qyhcePGNGvWzG/z1i4iIyPzDG6hVL6DRIUKrt/rvn3w00+cfbYvK5//NowxhdSiRQvm
z5/P4sWLWbt2LTfddBM7duwIejkuvfRSGjZsyPXXX8+qVav49ttveeCBBzJ7HeVm//793HnnnXz1
1Vds3ryZ7777jsWLF9O6dWsARo0aRVJSEtdccw1Lly5l06ZNfPbZZwwbNoxjx44B0KhRI1auXMn6
9etJSUkhPT09aPecH+U7SIDfeImOHX3JFiSMCY5x48bRrl07LrroIrp3706tWrVOenR1UQgPD+fD
Dz9k3759dOzYkeHDh/P3v/8dgEqVKuX6noiICJKTk7n22mtp0aIFf/nLX7jgggt45plnAGjYsCHf
ffcdR48e5aKLLqJt27bceeedREdHE+aZfvqWW26hcePGtG/fnvj4eBITE4Nzw/kkGqR2yOKSkJCg
hfqjTpgAo0fDiBH89uBrNGnikmNj4Y8/bOS1Cb4TLV5vguuHH36gc+fOrF69mjZtin3lgiJ3on9L
IrJMVRNyzczCHlx7axI//kijRhAX52bs2LcPNmyAFi1CWjpjTBDNmjWL6tWr06xZMzZu3Mhdd93F
2WefXSoDRFGx38lnngndukHPnohgTU7GlGP79+/n5ptvplWrVlx33XW0b9+ejz/+ONTFCimrSVSr
Bl9+mXl49tnwySduf8kSGDIkNMUyxgTf8OHDGT58eKiLUaJYTcLr6FHYu5fOnX1J334buuIYY0xJ
YEECYMoUqFoVxo7lnHPA29ttxQo4cCC0RTPGmFCyIAFQvz6kpcGPPxITA96R8hkZUMImZDTlRGnv
dWhCr6j+DVmQAGjvWQtpxQrIyKBrV19WHhNRGlPkIiIiSE1NDXUxTCmXmppaJIsuWZAAqFUL6tWD
Q4dgwwbOO8+X9c03oSuWKZ9q1arF9u3bOXz4sNUozElTVQ4fPsz27dv9JissKOvd5NWhg5vZ78cf
Oa+rb3DEDz/AsWMQGRnCsplypVq1agDs2LGDtLS0EJfGlEYRERHUrl07899SYViQ8Bo0CM44A9q0
oV49aNwYfvsNUlNh+XLIY8ZgY4pUtWrViuR/cGMKy4KE1zXX+B2ed54LEuCGUViQMMaUR/ZMIqtD
h2DhQkhP54ILfMlffBG6IhljTChZkMgqIcGtL7FqFT16+JK/+QaOHAldsYwxJlSCFiREpJKILBGR
lSKyRkTG5XKOiMhLIrJBRFaJSIdglQ/wtSktXkzDhr7J/Y4cge++C2pJjDGmRAhmTeIocKGqngGc
CVwiIp2zndMbaO7ZRgKvBLF8cM457tUTEXr29GV9/nlQS2KMMSVC0IKEOoc8hxGeLXsn8L7Am55z
vwdiReSUYJWRc891rxYkjDEGCPIzCREJE5EVQDKwQFV/yHZKPWBrluNtnrTgaNPGzeH0+++wYwcX
XOBbdCgxEfbuDVpJjDGmRAhqkFDV46p6JlAfOFtE2hbkc0RkpIgkikhi1kXLCy0sDF5+2VUbatQg
Nta3voQq/N//Fd2ljDGmNAhJ7yZV3QcsBC7JlrUdaJDluL4nLfv7X1PVBFVNiI+PL9rCXXst9OgB
njVtrcnJGFOeBbN3U7yIxHr2KwMXAeuynfYRcJ2nl1NnYL+qJgWrjIBbV+LTT+G11wD/IPHZZ65G
YYwx5UUwR1yfArwhImG44PQ/VZ0rIjcDqOq/gXlAH2ADcBi4IYjlc1JToXdvN1nTdddxzjmViI52
4+w2bYJ168DWqDfGlBdBCxKqugpon0v6v7PsK3BbsMqUq9hYaNsWVq+GpUup2LUrF18M77/vsufM
sSBhjCk/bMR1brp3d68LFwJw+eW+rLlzg18cY4wJFQsSufFO3PTllwD06eNb0vTbb+GPP0JTLGOM
CTYLErk5/3z3+uOPkJ5OrVq+GTsyMuCTT0JXNGOMCSYLErmJi4PFiyEpCcLdY5usTU5z5oSoXMYY
E2QWJALp3BkqV848vOwyX9ann4ItGGaMKQ8sSASSnAwPPQS33w7A6adDw4Yu68AB+OqrEJbNGGOC
xIJEIOHh8PTTMHkyHDmCCPTt68t+993QFc0YY4LFgkQgNWpAu3ZuBPbixQAMGODLfv99OH48RGUz
xpggsSBxIt6usJ7xEl26QJ06Lmn3bvj66xCVyxhjgsSCxIl41zD97DPATRLbv78ve9asEJTJGGOC
yILEiXTv7taXiImB9HQA/vIXX7Y1ORljyjoLEicSHQ0pKTB/fuZ4ifPOg9q1XfauXfDNNyEsnzHG
FDMLEnmJjHSvR48COZuc/ve/EJTJGGOCxIJEXlJS4JxzoHnzzMUkBg70Zc+aBceOhahsxhhTzCxI
5KVmTbfm9datbvpwoGtXaOBZPy8lxY3ANsaYssiCRF5E4OKL3f78+QBUqACDB/tOeeutEJTLGGOC
wIJEfvTq5V49QQLcUthec+bA3r1BLpMxxgSBBYn8uOgiV6P4+mu3jinQujWcdZbLPnrUxkwYY8om
CxL5ER8Pw4fDmDGZ4yXAvzZhTU7GmLJI1NNjp7RKSEjQxMTEkFw7ORnq1vUNqFu/Hpo1C0lRjDHm
pIjIMlVNyOs8q0mcjEOHYPbszKhQqxb07u3Lnjw5ROUyxphiYkHiZHTqBP36wQ8/ZCaNGOHLnjbN
xkwYY8oWCxInw9sV9qOPMpP69IF69dx+crJfljHGlHpBCxIi0kBEForIzyKyRkRG5XJOdxHZLyIr
PNujwSpfvlxxhXvNEgnCw2HYMN8pr74a5DIZY0wxCmZNIh24W1VbA52B20SkdS7nfaOqZ3q2x4JY
vryddx7ExsLate4ptcewYW6AHcDnn8PGjSEqnzHGFLF8BQkReVJEqmQ57iMilbMcVxORN0/0Gaqa
pKo/evYPAmuBegUrdohERLj2JYB58zKTGza0B9jGmLIpvzWJ+4HoLMczgVOyHFcGBpNPItIIaA/8
kEv2uSKySkQ+EZE2+f3MoLnnHjeo7o47/JJHjvTtT51qD7CNMWVDfoOE5HGcbyISDbwH3KWqB7Jl
/wg0VNV2wERgdoDPGCkiiSKSuHv37oIWpWDat3cz/FXw/9Nlf4D93nvBLZYxxhSHoPZuEpEIXIB4
R1Xfz56vqgdU9ZBnfx4QISJxuZz3mqomqGpCfHx8sZc7hzVr4M47XZXBIzwcbrrJd8qLL2bOLG6M
MaVWMHs3CTAFWKuqLwQ4p47nPETkbE/5/ghWGfNt7VqYOBFee80v+aaboGJFt790KSxeHIKyGWNM
EQo/iXNvFpFDWd43TES8X+BV8/H+LsC1wE8issKT9hDQEEBV/w0MAG4RkXQgFRikJXHekD59oEoV
N6huyxb35Bo3AnvIEJgyxZ324otw7rkhLKcxxhRSvuZuEpHfgTxPVNXGRVCmkxKyuZsGDnRTv77w
AowenZn800/Qrp3br1ABNm2CU08NfvGMMeZEinTuJlVtpKqN89oKX+xSZMAA95ptkevTT4cePdx+
RgZMmhTkchljTBGyaTkK6tJLIS7OVROy9XfNUrHg9dfh4MEgl80YY4pIfgfTnSEiF2RLGywim0Qk
WUT+LSKRxVPEEioqCrZvh5kzIdL/1nv3hubN3f7+/TmebxtjTKmR35rE48B53gPPdBrTgPXADNxA
uvuLvHQlnTc4rF/v19+1QgW4+27faf/4Bxw5EuSyGWNMEchvkOgAfJbleBDws6r2UtVRwF3A1UVd
uFKhb19o0cJv+nCAoUPdgkQAO3fC9OlBL5kxxhRafoNETWBHluPzgTlZjr/E05W13PG2K2Vbv7Ri
RTeDh9czz0BaWhDLVYpNnz4dEcncwsLCqFevHgMHDuSXX34plmt++eWXjB07loyMjGL5/KLUqFEj
hg4detLvGzt2LJ5hSMbkW36DxG48k/GJSBhwFv7zLkUCJf//ruLgXeh65swcD7BHjoSaNd3+77/D
jBnBLVppN2vWLBYvXszXX3/NU089xfLly+nRowf79+8v8mt9+eWXjBs3rlQECWOCKb9B4ktgjIg0
Abyt7Quz5LcGfi+6YpUiZ5zh+r3u2QOffuqXFRUFd93lO37qKdct1uTPmWeeSefOnenSpQvXXXcd
r7zyCtu3b+e7774LddGMKTfyGyT+DjQHNgBPAPep6p9Z8q8FvijispUeQ4a412xNTgC33w7Vqrn9
devc+DtTMNU8f8i0bO12K1eu5IorrqB69epUrlyZLl268M033/ids3TpUi666CJq1qxJ5cqVadKk
CbfeeivgmmHGjRsHQERERGYz14mICI888gjPP/88p556KlWqVOHSSy8lOTmZ5ORkBg4cSExMDA0a
NOCZZ57J8f4lS5bQs2dPoqOjiYqKokePHixZsiTHef/85z9p1KgRlSpVIiEhIcd9ef32228MHjyY
+Ph4KlasyJlnnskHH3xwwnswJl9UNV8bbiqOM4C6ueSdAdTM72cV5XbWWWdpyG3bpvr886o7duSa
/dBDqq77k2qLFqppaUEuXykzbdo0BXTdunWalpamR44c0Z9//ll79OihtWrV0v3792eeu2zZMq1S
pYp26dJFZ82apR9//LFefvnlGhkZqYmJiaqqevDgQa1evbr26tVLP/roI124cKFOmzZNR4wYoaqq
W7du1WHDhimgixYt0sWLF+vixYtPWEZAGzZsqH369NG5c+fqlClTtGrVqtqrVy8999xzdfz48bpg
wQIdOXKkAvrxxx9nvnflypVaqVIl7dChg86aNUvfffddTUhI0EqVKumKFSsyz5s8ebICOnToUP3k
k0904sSJWq9ePa1WrZpef/31medt2bJF4+PjtU2bNvrWW2/pp59+qjfccIOKiH744YeZ540ZM0bd
//LGqAKJmp/v/vycVJK3EhEk8rBnj2pMjC9QTJ0a6hKVbN4gkX2rW7euLlmyxO/cCy+8UFu1aqVH
jx7NTEtPT9dWrVpp3759VVV16dKlCujKlSsDXtP7BZqWzwgOaPPmzf3OHz16tAI6fvz4zLS0tDSN
j4/XoUOHZqb1799fY2JidO/evZlp+/fv1+rVq2u/fv1UVfX48eNav3597dWrl991Z86cqYBfkLjx
xhs1Li5OU1JS/M7t2bOnnnHGGTnu0RjV/AeJ/A6m+1t+tqKp25RSaWnw9tvuQXa2+bCqV/fv6TRu
HBw9GuTylUIffPABS5cuZcmSJcyePZvWrVvTp08f1q5dC0BqaipfffUVf/nLX6hQoQLp6emkp6ej
qvTs2ZOvv/4agObNmxMbG8tNN93E22+/zdatW4ukfBdddBHh4b45Mlu1agVAr169MtPCw8Np1qyZ
3zW//vprLrvsMmJjYzPTqlWrxhVXXMFXX30FwLZt29i2bRsDBw70u2b//v39rgnw6aef0qdPH2Ji
YjL/Bunp6fTq1YuVK1dy4ED2ZVuMyb/8PpP4B/AAcDtwR4Dt9uIoYKkhAvff7wJFLu3Go0a5WTwA
Nm+2JU7zo23btiQkJNCxY0f69u3LRx99hKoyduxYAPbs2cPx48cZP348ERERftukSZPYu3cvGRkZ
xMTEsHDhQurWrcutt95Kw4YNadu2Le8VcmWo6tWr+x1HegZX5pZ+JMtoyj179nDKKaeQXZ06ddi7
dy8ASUlJANSuXdvvnPDwcGp6u8x5JCcn8+abb+b4G9x7770A/PFHyZtt35Qe+Z0qfCnQBvgYmKKq
i4qvSKVUeDjceCM8/ribh+P88/2yq1aFBx/0jcR+/HG44QY347jJH+8D51WrVgEQGxtLhQoVuO22
27juuuuE2UwBAAAgAElEQVRyfU8FzwqCZ555Ju+99x7p6ekkJiby1FNPMXDgQFauXEnbtm2Ddg8A
NWrUYOfOnTnSd+7cmRlgvEFk165dfuekp6fn+NKvWbMmXbt25f77c5/0oK53VKcxBZDfWWA7AZ2A
vcD7IvKLiNwnIrXzeGv5MmyYq1G8+y7k8uvtllv8R2G/+GKQy1fKHT58mI0bN+JdjTAqKoquXbuy
cuVKOnToQEJCQo4tu/DwcDp37sz48ePJyMjIbLqq6FktKjU1tdjvo1u3bsybN4+DWWZ+PHjwIHPm
zKF79+4A1K9fnwYNGvC/bLMMewNdVpdccgmrVq2iTZs2uf4NvPdmTEHke9EhVV0D/E1E7gf6AjcC
40TkM2Cgqlore6NG0KuXGy/x1lv+gySAypVhzBjfMqdPPeXiSp06wS9qabBixQpSUlJQVZKSkpg0
aRJ79uzhjjvuyDznhRde4Pzzz6dXr14MGzaMU045hZSUFH788UeOHz/O008/zdy5c3nttde48sor
ady4MX/++ScvvfQSVatW5ZxzzgGgdevWADz//PP07t2bsLCwXINMUfj73//O3Llz6dGjB/fffz8i
wjPPPMPhw4d59NFHAVcDGjNmDMOHD+eGG25g0KBBbNiwgaeffjqzK7DXY489xtlnn83555/P7bff
TqNGjdi7dy+rV69m06ZNTM2yzK4xJy0/T7dz24CLcYPs0oHYgn5OYbcS17vpvfdUGzcO2IUpLU21
TRtfT6fhw4NcvlIgt95N8fHxesEFF+inn36a4/yff/5Zr776ao2Pj9fIyEitV6+eXn755ZndTtet
W6cDBw7URo0aacWKFTUuLk579+6t33//feZnpKen66233qrx8fEqInn2AgL04YcfzrXc69ev90vv
1q2bdunSxS/t+++/1x49emhUVJRWqVJFL7zwQv3hhx9yXGfChAnasGFDrVixop511ln6zTff6Kmn
nurXu0nV1423bt26GhERoXXq1NGePXvqW2+9lXmO9W4yWZHP3k35WpnOS0Qa4WoQ13uS3gSmqupv
hQ9XBROylekCOX7cNTlVCNySN38+XHKJ2xeB5cvdwG1jjAmWIl2ZzrN2xBfAz0BL4Cagkar+PZQB
okQKC3MB4uhRWLAg11N69fIFCVX3MPskYrUxxgRNfte4zgC2AP8BUgKdp6ovFF3R8qfE1STAjZlo
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
"
>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="Logistic-Regression">Logistic Regression<a class="anchor-link" href="#Logistic-Regression">&#182;</a></h3><ul>
<li>commonly used to est probability of instance belonging to specified class. positive if &gt;50% (labeled "1"), otherwise labeled "0".</li>
</ul>
<p><img src="logistic-regression-probability.png" alt="Logistic Regression model probability"></p>
<ul>
<li>logistic is a sigmoid function, outputs 0&lt;n&lt;1.</li>
</ul>
<p><img src="logistic-function.png" alt="Logistic function"></p>
<ul>
<li>cost function = average over all training data. It is convex, so gradient descent will find global minimum.</li>
</ul>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[22]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1">#from sklearn import datasets</span>
<span class="c1">#iris = datasets.load_iris()</span>

<span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>

<span class="kn">from</span> <span class="nn">sklearn</span> <span class="k">import</span> <span class="n">datasets</span>
<span class="n">iris</span> <span class="o">=</span> <span class="n">datasets</span><span class="o">.</span><span class="n">load_iris</span><span class="p">()</span>
<span class="nb">print</span><span class="p">(</span><span class="n">iris</span><span class="o">.</span><span class="n">keys</span><span class="p">())</span>

<span class="n">X</span> <span class="o">=</span> <span class="n">iris</span><span class="p">[</span><span class="s2">&quot;data&quot;</span><span class="p">][:,</span> <span class="mi">3</span><span class="p">:]</span> <span class="c1"># petal width</span>
<span class="n">y</span> <span class="o">=</span> <span class="p">(</span><span class="n">iris</span><span class="p">[</span><span class="s2">&quot;target&quot;</span><span class="p">]</span> <span class="o">==</span> <span class="mi">2</span><span class="p">)</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">int</span><span class="p">)</span> <span class="c1"># 1 if Iris-Virginica, else 0</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area"><div class="prompt"></div>
<div class="output_subarea output_stream output_stdout output_text">
<pre>dict_keys([&#39;target_names&#39;, &#39;DESCR&#39;, &#39;data&#39;, &#39;target&#39;, &#39;feature_names&#39;])
</pre>
</div>
</div>

</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[23]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># train a LR model</span>

<span class="kn">from</span> <span class="nn">sklearn.linear_model</span> <span class="k">import</span> <span class="n">LogisticRegression</span>
<span class="n">log_reg</span><span class="o">=</span><span class="n">LogisticRegression</span><span class="p">()</span>
<span class="n">log_reg</span><span class="o">.</span><span class="n">fit</span><span class="p">(</span><span class="n">X</span><span class="p">,</span><span class="n">y</span><span class="p">)</span>

<span class="c1"># predict probability of flowers with petal widths = 0-3cm </span>
<span class="n">X_new</span>             <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">1000</span><span class="p">)</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
<span class="n">y_proba</span>           <span class="o">=</span> <span class="n">log_reg</span><span class="o">.</span><span class="n">predict_proba</span><span class="p">(</span><span class="n">X_new</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="n">y_proba</span><span class="p">)</span>
<span class="n">decision_boundary</span> <span class="o">=</span> <span class="n">X_new</span><span class="p">[</span><span class="n">y_proba</span><span class="p">[:,</span> <span class="mi">1</span><span class="p">]</span> <span class="o">&gt;=</span> <span class="mf">0.5</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span>

<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">X_new</span><span class="p">,</span> <span class="n">y_proba</span><span class="p">[:,</span> <span class="mi">1</span><span class="p">],</span> <span class="s2">&quot;g-&quot;</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s2">&quot;Iris-Virginica&quot;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">X_new</span><span class="p">,</span> <span class="n">y_proba</span><span class="p">[:,</span> <span class="mi">0</span><span class="p">],</span> <span class="s2">&quot;b--&quot;</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s2">&quot;Not Iris-Virginica&quot;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="n">decision_boundary</span><span class="o">+</span><span class="mf">0.02</span><span class="p">,</span> <span class="mf">0.15</span><span class="p">,</span> <span class="s2">&quot;Decision  boundary&quot;</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">14</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s2">&quot;k&quot;</span><span class="p">,</span> <span class="n">ha</span><span class="o">=</span><span class="s2">&quot;center&quot;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s2">&quot;Petal width (cm)&quot;</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">14</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s2">&quot;Probability&quot;</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">14</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">legend</span><span class="p">(</span><span class="n">loc</span><span class="o">=</span><span class="s2">&quot;center left&quot;</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">14</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area"><div class="prompt"></div>
<div class="output_subarea output_stream output_stdout output_text">
<pre>[[ 0.98552764  0.01447236]
 [ 0.98541511  0.01458489]
 [ 0.98530171  0.01469829]
 ..., 
 [ 0.02620686  0.97379314]
 [ 0.02600703  0.97399297]
 [ 0.02580868  0.97419132]]
</pre>
</div>
</div>

<div class="output_area"><div class="prompt"></div>


<div class="output_png output_subarea ">
<img src="
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
XWv9TtzmlZbxifRBa830fdOp5luNqJgotn6+lcaNGrN8+fL4c7p3705AQACLFi3iyJEj+Pj40KxZ
Mw4dOgRAeHg4NWrUQCnF33//TVBQEB9//PELH2pPdO7cmbfeeou9e/cSFBTEmDFjsLNLfP3rixcv
0qhRIypUqMDBgwfx9fXl999/Z9iwYc+ct3DhQqysrNi5cydTp07lxx9/ZMmSJSl+P3744QdKlSrF
gQMHGDt2LMOHD2fFihUAxMbG0qJFC65cuYK/vz/+/v6Eh4fTsmVLdAqHP4eGhrJkyRJWrlzJxo0b
OXjwIF988UX88e+//57Zs2cza9Ysdu3aRUxMDAsXLnzmGvfv32fQoEHs3buXLVu24OrqSrNmzYiK
iqJkyafnDRw4DE/P/hw9eow2bdrQqVMn5syZ88y15syZQ9OmTcmdW6ZXMSutdYbeKlWqpEXm4OPj
oxs0aqA7LO2gGYNutKCRvnb/mtZa688//1zb29trrbUOCQnRSil97ty5Z17fokUL/eGHH2qttR4+
fLjOnz+/joyMTPReo0eP1mXKlIl/7uzsrOfNm5fouWfPntWA3rdvX/y1ixYtqmNiYuLPmTt3rrax
sdH379/XWmvt7e2tq1at+sx16tevr3v27Jns90NrrQsUKKDr16//zL6ePXvq6tWra6213rhxo7aw
sNBnz56NP3769GmtlNJ///13or/rk3gdHR3jn48ePVrb2trqW7duxe/76quvdJEiReKfv/XWW/qr
r76Kfx4TE6OLFSumvb29Xxr/vXv3tIWFhd62bZvW+ul7+fbbEzVo3by51teuab1v3z5taWmpL1y4
oLXW+saNG9rOzk6vWbMmOW+TeA1AoE7GZ2y67N0ksqYbD2+wLWwby44tY0K9CaztvDa+/UFrHT8W
4sCBA2itKV26NE5OTvHbunXrOB23GPPBgwepUaMGNk+WVUvCp59+Sq9evahbty5ff/01x48ff+m5
wcHBVK1aFQuLp/99atSoQVRUFCEhIfH7ypUr98zr8ubNy9XXGGVWrVq1F54fO3YsPpa8efNSsGDB
+OOFCxcmb9688eckV4ECBXB1dU003tu3b3Pp0qVnYrGwsKBKlSrPXOP06dN07tyZIkWK4OLiQu7c
uYmNjSUsLOyZ8376yYtJk8DPz+gme/euF2+//Tbz588HYNGiReTIkYNGjRql6HcQpidJQphdTGwM
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
niScc86l9H9fMjPXbxyVAAAAAABJRU5ErkJggg==
"
>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[24]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># what&#39;s the prediction for petal length = 1.5 or 1.7cm?</span>
<span class="nb">print</span><span class="p">(</span><span class="n">log_reg</span><span class="o">.</span><span class="n">predict</span><span class="p">([[</span><span class="mf">1.5</span><span class="p">],</span> <span class="p">[</span><span class="mf">1.7</span><span class="p">]]))</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area"><div class="prompt"></div>
<div class="output_subarea output_stream output_stdout output_text">
<pre>[0 1]
</pre>
</div>
</div>

</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[25]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># Logistic Regressin contour plot</span>
<span class="c1"># with multiple decision boundaries (not just 50%)</span>

<span class="kn">from</span> <span class="nn">sklearn.linear_model</span> <span class="k">import</span> <span class="n">LogisticRegression</span>

<span class="n">X</span> <span class="o">=</span> <span class="n">iris</span><span class="p">[</span><span class="s2">&quot;data&quot;</span><span class="p">][:,</span> <span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">)]</span>  <span class="c1"># petal length, petal width</span>
<span class="n">y</span> <span class="o">=</span> <span class="p">(</span><span class="n">iris</span><span class="p">[</span><span class="s2">&quot;target&quot;</span><span class="p">]</span> <span class="o">==</span> <span class="mi">2</span><span class="p">)</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">int</span><span class="p">)</span>

<span class="n">log_reg</span> <span class="o">=</span> <span class="n">LogisticRegression</span><span class="p">(</span><span class="n">C</span><span class="o">=</span><span class="mi">10</span><span class="o">**</span><span class="mi">10</span><span class="p">)</span>
<span class="n">log_reg</span><span class="o">.</span><span class="n">fit</span><span class="p">(</span><span class="n">X</span><span class="p">,</span> <span class="n">y</span><span class="p">)</span>

<span class="n">x0</span><span class="p">,</span> <span class="n">x1</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">meshgrid</span><span class="p">(</span>
         <span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="mf">2.9</span><span class="p">,</span> <span class="mi">7</span><span class="p">,</span> <span class="mi">500</span><span class="p">)</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span>
         <span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="mf">0.8</span><span class="p">,</span> <span class="mf">2.7</span><span class="p">,</span> <span class="mi">200</span><span class="p">)</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span>
    <span class="p">)</span>

<span class="c1"># ravel(): return contiguous flattened array</span>
<span class="n">X_new</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">c_</span><span class="p">[</span><span class="n">x0</span><span class="o">.</span><span class="n">ravel</span><span class="p">(),</span> <span class="n">x1</span><span class="o">.</span><span class="n">ravel</span><span class="p">()]</span>

<span class="n">y_proba</span> <span class="o">=</span> <span class="n">log_reg</span><span class="o">.</span><span class="n">predict_proba</span><span class="p">(</span><span class="n">X_new</span><span class="p">)</span>

<span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">(</span><span class="n">figsize</span><span class="o">=</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="mi">4</span><span class="p">))</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">X</span><span class="p">[</span><span class="n">y</span><span class="o">==</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">],</span> <span class="n">X</span><span class="p">[</span><span class="n">y</span><span class="o">==</span><span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">],</span> <span class="s2">&quot;bs&quot;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">X</span><span class="p">[</span><span class="n">y</span><span class="o">==</span><span class="mi">1</span><span class="p">,</span> <span class="mi">0</span><span class="p">],</span> <span class="n">X</span><span class="p">[</span><span class="n">y</span><span class="o">==</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">],</span> <span class="s2">&quot;g^&quot;</span><span class="p">)</span>

<span class="n">zz</span> <span class="o">=</span> <span class="n">y_proba</span><span class="p">[:,</span> <span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="n">x0</span><span class="o">.</span><span class="n">shape</span><span class="p">)</span>
<span class="n">contour</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">contour</span><span class="p">(</span><span class="n">x0</span><span class="p">,</span> <span class="n">x1</span><span class="p">,</span> <span class="n">zz</span><span class="p">,</span> <span class="n">cmap</span><span class="o">=</span><span class="n">plt</span><span class="o">.</span><span class="n">cm</span><span class="o">.</span><span class="n">brg</span><span class="p">)</span>


<span class="n">left_right</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="mf">2.9</span><span class="p">,</span> <span class="mi">7</span><span class="p">])</span>
<span class="n">boundary</span> <span class="o">=</span> <span class="o">-</span><span class="p">(</span><span class="n">log_reg</span><span class="o">.</span><span class="n">coef_</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> <span class="o">*</span> <span class="n">left_right</span> <span class="o">+</span> <span class="n">log_reg</span><span class="o">.</span><span class="n">intercept_</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> <span class="o">/</span> <span class="n">log_reg</span><span class="o">.</span><span class="n">coef_</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span>

<span class="n">plt</span><span class="o">.</span><span class="n">clabel</span><span class="p">(</span><span class="n">contour</span><span class="p">,</span> <span class="n">inline</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">12</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">left_right</span><span class="p">,</span> <span class="n">boundary</span><span class="p">,</span> <span class="s2">&quot;k--&quot;</span><span class="p">,</span> <span class="n">linewidth</span><span class="o">=</span><span class="mi">3</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="mf">3.5</span><span class="p">,</span> <span class="mf">1.5</span><span class="p">,</span> <span class="s2">&quot;Not Iris-Virginica&quot;</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">14</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s2">&quot;b&quot;</span><span class="p">,</span> <span class="n">ha</span><span class="o">=</span><span class="s2">&quot;center&quot;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="mf">6.5</span><span class="p">,</span> <span class="mf">2.3</span><span class="p">,</span> <span class="s2">&quot;Iris-Virginica&quot;</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">14</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s2">&quot;g&quot;</span><span class="p">,</span> <span class="n">ha</span><span class="o">=</span><span class="s2">&quot;center&quot;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s2">&quot;Petal length&quot;</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">14</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s2">&quot;Petal width&quot;</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">14</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">axis</span><span class="p">([</span><span class="mf">2.9</span><span class="p">,</span> <span class="mi">7</span><span class="p">,</span> <span class="mf">0.8</span><span class="p">,</span> <span class="mf">2.7</span><span class="p">])</span>
<span class="c1">#save_fig(&quot;logistic_regression_contour_plot&quot;)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area"><div class="prompt"></div>


<div class="output_png output_subarea ">
<img src="
AAALEgAACxIB0t1+/AAAIABJREFUeJzs3XdYVEfbwOHfWXoVpYoK2FERNKKJLZYYjbEkGkss0WiM
NXYB02PyxgL2WGK+qLH33jH2rhhBrFjBQu99YXe+P1ZRFAEJYsncXnu9sDuzz5yz8fXZc2bmUYQQ
SJIkSZIkSa8n1csegCRJkiRJklR0MpmTJEmSJEl6jclkTpIkSZIk6TUmkzlJkiRJkqTXmEzmJEmS
JEmSXmMymZMkSZIkSXqNyWROkiRJkiTpNSaTOUmSJEmSpNeYTOYkSZIkSZJeY/ovewAvko2NjXBx
cQFAk5BM0o0w4gwhQxHUcnPLaZeens61a9ewt7fH1tYWleqxHFerJe3aeVQGhujbOKBvURoU5bnG
EZcSRmpGLOYmtlia2KOnMiiOw3tKGGHEEosttthjjwEvJo4kSZIkScXv7NmzMUII2+ft90Yncy4u
LgQEBACQFR5D5MyVRP++AXVSCqVLN8DBuw8Wrd6md+/eXLp0ibt375KamsqwYcMYPnw4dnZ2aLPU
xO1aQeQyPzJuXcawrBb7XmOx/qg/eiZmhRpHWMw5/IN8Cbi5FpUSx9tVetOmjjcOVq7FerznOIcv
vqxlLXHE8Rmf4Y031alerHEkSZIkSSp+iqKEFqnfm1yb1dPTUzxM5h7SJKYQvWADkTNWkh0Ri1Kn
Cu1C/yYiPjZXO2NjY/r168fYsWOpXLkyQqsl8ch2Ipb6khp0DL1S1th1G4Zd9+HoW9kUajzRSTf5
+/x0jl1dRJYmHQ/njrSpM57K9g2L7ZgBbnCD6UxnEYvIJJOOdMQHHxpSvHEkSZIkSSo+iqKcFUJ4
Pne//1oy95A2U03csp1E+C0lMeQ2u200LCeS2zGRudqpVCr8/PwYM2ZMznMpgUeJWOJL4pFtKEYm
2Hz0Bfa9x2Lk6FKocSWnR3Pg4hwOXpxDamYcVRya0NrDm9pO7VApxTeNMYoo5jCHucwljjia0hRv
vGlHOxSe71axJEmSJEkvlkzm8uBZz1MEnM07mXtIaLUkbDlE5JQlJJ0K5pCFmuUWyZy//+hK5/Hj
x2nYUHdV6+H5UhSF9JuXiFw2lbhdyxFCS5n3u2PfxxvTah6FGl9mVipHr/zJ38HTiUsJw7F0Ld53
H0eDKj3R1zMs4lE/LYUU/uRPZjCDMMKoRS288KInPeW8OkmSJEl6RchkLg9ljSqJldO20ri/K4am
+U8PFEKQcuQcEVOWkLjzKGeN1ayyzyLbrhRHT5/Kaefv74+Pjw/e3t507doVfX191JF3iVo1k+hN
f6BNTcayYRvs+3hj4dkCpRCLJTTaLM7cWIN/kC/34oIpbVaB92qPoqnrlxgbWvzr8/BQFlmsZjV+
+BFMMBWowChGMZCBmGNebHEkSZIkSXp+MpnLQ3nzKqJdqjdm1ka0GO5Gi69qYW5tXGC/9ODrRPgt
JW7VHjKEBscebXHw7otJ7Sq0atWKffv2AboFFmPHjqV///6YmpqSnZxA9Pr5RK2eRXZsJKY1PXHo
441Vi84oenoFxhVCcOHOLvyDfAkJP4SpoRXNag2jZa3hWJra/+vzkRMHwS524YsvhzhEaUozlKEM
Zzj2FF8cSZIkSZIKTyZzefD09BSrZmxjj28QwdvDMDTVp/EX1Xl/rDvWzgVf8VKHRRA5YwUx/7cZ
bWo66S09aHN8JWkZGbna2djYMHz4cIYNG4a1tTXazAxidywlcpkfmXeuY1Shim4FbPu+qIxNCjX2
W1Gn2R04maDbm9HTM6RRtX687z4Wu1JVinQunuUUp5jCFDazGUMM6Uc/xjKWKhRvHEmSJEmS8ieT
uTw8vgDi/sU4/P3Oc2rFNRDg2b0yrb09qOBhXeD7ZMclEj1vHVGz1xATHc2mcrAy8SbxKcm52pma
mrJ48WK6desGgNBoSDi4mYglU0i7dAb9MnbYdR+Bbdeh6FuWLtQxRCaE4H9+KidDlqAR2bxV8RNa
e3jjYvvcn3W+QgjBDz+WspRssulCF7zwwpPijSNJkiRJUt5kMpeHvFazxt1JYd/MYI78cYXMlCxq
tinPBz51qNa8bIHz27TpGcT+tZ2IqctIvBnGDlstK7Th3ImNBnSLIq5evUrVqlUB3W1TRVF08/HO
HiJi6RSSju9GZWKGTaeB2Pcag6F9+UIdS2JaBPsvzOLgxXlkZCVR3bElbTy8qVm+daHm5RVWBBHM
YhbzmEcSSbSkJT748D7vyxWwkiRJkvQCyWQuD/ltTZIan8mh+Zc4MPsCSZHpuNS3pbW3B3U7uaDS
y397EKHREL9hv24F7D+X2V8qi+UmCbg2eIsNWzbntFu2bBkrV67Ex8eHZs2aoSgKadfOE7nUlzj/
1YBCmQ964tDHG5PKtQp1TOnqJI5c/oO/g6eTmBZOBes6tPbwol6lbuipim8P6CSS+IM/mM50wgnH
Aw988KErXdF/s/ealiRJkqSXQiZzecgvmXtInZ7NiSUh/D3tPFHXk7CrWor3x9amYd9qGBgXvAI2
ef8ZIqYsIWnvSdLNjak4pBt2o3piUNaG2rVrc/HiRQDq16+Pj48PH3/8MXp6emSGhxK1Yjoxm/9E
m5FGqSbtcPh8PGYejQt1pS1Lk8np6yvxD/IlIuEK1ubOvO8+jsau/THUNy38SSpAJpmsZCW++HKF
K7jgwljG0p/+mFJ8cSRJkiTpv04mc3koTDL3kFaj5dzG2+zxDSI0IBpLexNajnSj2ZCamFoZFdg/
7dwVInyXEr/2bxQ9Fffa1uGjbX/w5PmtWrUq48aNo0+fPhgbG5OdEEPU2rlEr51DdkIMZu4Ncejj
Q6l3O6CoCt5AWCu0BIduZ3fQZG5GnsDMyJoWbsNpUesrzI0Lng9YWFq0bGMbvvhynONYY81whvMV
X2FN8cWRJEmSpP8qmczl4XmSuYeEEFw9cJ89vkFc2nMXYwsDmg6swXuj3ChdvuC92DJv3iVy2gpi
Fm0lNCORtS56bLp/hUy1Olc7e3t71q1bR9OmTQHQZqQRs3Uxkcunor5/G2MXV+w/86JM216oDAtO
JgGuRxxlT6Av58O2YaBnQhPXAbRyH4ONhctznYP8CATHOIYvvmxjG6aY8gVfMJaxOONcbHEkSZIk
6b9GJnN5cHPzFBcuPF8y97g7QbHsmRJIwJqbqPQUGvSqQmsvDxxrFrwSNSs6nug5a4mas5bIuBg2
lVdYHX+DxNQUAExMTAgNDcXW1jZXP5GdTfzf64hY6kt6SCAGto7Y9RiFbedB6JlbFmrc9+Mu4n9+
Kqevr0AILZ6Vu9Paw5sK1oWrTFFYF7nIVKayghVo0dKd7vjggzvuxRpHkiRJkv4LZDKXB0XxFB06
BODtDY0bQ1EXfcbcTubv6ec5+ucVstI1uHdwoo1PHao0diiwryY1ndiFW4ictpz4sHtstxcsV9+l
U/duzJ0/L6fdrFmzCAwMxMvLi5o1a+rm453aS8RSX5JP70NlZoltlyHY9xiJgU3ZQo07LuUO+y/M
4vDlBWRmpVCzfBs+qONDtbLNi3UF7B3uMJOZ/MEfpJBCG9rggw/NaS5XwEqSJElSIclkLg+Ojp5C
rQ4gNhYaNQIfH2jfHgoxFS1PKTEZHJh7kQO/XSA1NpPKjexp4+NB7fbOqFT5Jy0iK5u4Nf5E+i4l
KTiEbEcbqo7tg82Xncg21KdSpUrcv38fgA4dOuDj40Pjxo0BSL18lsilvsTvW4+ip491uz7Y9x6H
sUv1Qo07NTOeQ5fmc+DCbJLSI3GxrU9rD2/qunRCpSq4MkVhxRPPPOYxm9lEEUV96uOFF53pjB7F
F0eSJEmS3kQymcuDp6enOHQogL/+gqlT4fZtcHUFb2/o2ROMCjcV7SmZqVkcW3SVv6cHE3s7GQdX
K1p7e/B2ryroG+aftAghSNp9nAjfpaQcPIuelQXnWlWj//o/nmrbqFEjfHx8aN++PSqVisy7N4hc
Po2YbYsR6kysmn+MfR9vzGu/U6hxZ2VncCJkCXuDpxGVeA07yyq0ch9Lo2qfY6BfcJmzwkonnSUs
YRrTuM51qlKVsYylL30xpvjiSJIkSdKbRCZzeXh8AUR2NqxbB1OmQFAQODrC6NEwcCBYFm4q2lM0
2VrOrr3JHt8g7gbFYuVoynuja9N0YA1MLA0L7J966gIRvktI2HSQ8/oZrCqnYe/ty0+1q1GjBhs3
bsTV1RWArLgoolbPJnr9PDRJ8Zi/9S4OfXywbNy2ULdPtVoN525vwj/Il9vRZ7A0saeF2wia1RyC
mVHhKlMUhgYNG9mIL74EEIA99oxgBEMZihVWxRZHkiRJkt4EMpnLQ16rWYWAvXt1Sd3+/VCqFAwe
DKNGgUPBU+DyJITg4p67+PsFcXX/fUxKGdJsSE1ajnSjlEPBe7FlhIQSOXU5sUt3cFOdzBpnhS13
L5OVnQ3oar+GhoZiapr7vTSpycRs/pPIldPJiryLcWU3HPp4U6bNpyj6BoUad0j4QXYHTuHS3T0Y
GZjT1HUgrWqPprR54SpTFIZAcIADTGEK/vhjjjmDGMQoRlGe4osjSZIkSa+zoiZzCCFK5AFUAA4A
l4CLwMg82jQHEoHAB48fHnvtA+AqcB0YX5iY9erVE/k5c0aIbt2EUKmEMDQUYsAAIa5ezbdLgW6d
jhQLuu4Vg5QFYqjRn2Lpl4dEREhCofqqw6PF3fG/iXOlmomd1Bb9nTyEhampmDBhQq52P//8s/j6
669FRESEEEIIbZZaxGxbIi50cxMB9RBBH1YQEStmiOzU5EKPOywmUPy5r6cY/IeeGPyHvlh84HNx
L/ZC4Q+8kAJFoOghegg9oScMhIHoJ/qJi+JisceRJOm/5X7SffHu4ndFeHL4yx5Knoo6vlf9uKTi
BQSIouRYRelUpEBQFnjrwc8WQAhQ84k2zYHtefTVA24AlQBDIOjJvnk9CkrmHrp2TYhBg4QwMhJC
UYTo3FmIkycLe+rzFhGSIJYPOiyGGv0pBikLxPzOe8TNU5GF6pudmCzC/ZaKIMcPxAE8xCm3LiJm
+U6hzcoScXFxwtzcXADCyMhIDBw4UISEhAghhNBqtSLhyHZxZUBTEVAPca5FaXF33ndCHVu4uEII
EZ10S6w6OlwM+9NEDFyAmLOrg7gWfqRI5yA/t8QtMVwMFybCRCAQHUQHcVQcLfY4kiT9NwzZPkSo
JqjE0O1DX/ZQ8lTU8b3qxyUVr6Imcy/tNquiKFuAOUKIvY891xwYJ4Ro/0TbhsBPQog2D37/GkAI
MSm/GM+7aXBkJMyeDfPmQUICNG8OXl7Qtm3RtzVJikxj/28XOTT3ImkJaqo1L0sbbw9qfVChwPlt
WnUWcSt2Eem3jIzLtzB0Lss2T2u+3bAkVztFUejcuTPe3t40aNAAgJTzJ4hc6kvCoS0ohkbYdOiH
fe9xGJWvVKhxp2TEcuDiHA5c+I3UzFgq2zeitYc37s4dUClFXA6chxhimMtcZjObOOJoSEPGM572
tEdF8cWRJOnNFZ4cTqXZlcjIzsBE34SbI2/iYF7EeTMvQFHH96ofl1T8inqb9aX8a6koigtQFziV
x8uNFEU5ryjKLkVRHlafLwfceazN3QfP5fXeAxVFCVAUJSA6Ovq5xmVvD7/+CmFhMH06XL8O7dpB
nTqwbBlkZT3X2wFgaW/Kx/+rz6SwnnSZ9g5R15L47cPd/OKxgZPLr6HJ0j6zr8rQAJt+Hal5YQ2V
N0/FoJwtrTYEM9XcjbrlXHLaCSHYsGEDb7/9Ni1atCAyMhJz94ZUnrqJWusuUeaDXsRs/pMLnaty
8+vupF35p8Bxmxtb06Hej0zqGcqnjX4jIfUe8/0/ZsK6Why7upgsTebzn4w82GDDj/xIGGH8xm/c
5z4f8RG1qMViFqNGXfCbSJL0n/bL4V/QCt3/l2qEhl8O/fKSR5RbUcf3qh+X9Ooo8StziqKYA4eA
X4UQG594zRLQCiFSFEX5EJglhKiqKEoX4AMhxIAH7T4D3hZCfJVfrKKU83qcWg2rVoGvL1y6BE5O
MGYMfPEFmBdc2StP2WoNZ1bdYI9vEOGX4injZE6rMbVpMsAVI7OCFy2kHAskYsoSErYdJtBIzQqH
LA6GXs15vWrVqly+fBk9vdxbpKij7xO1ahbRG35Hm5qERYNWOPTxxuLtVoVaAavRZnP25jr8g3y5
ExuIlakj79UeTdMaAzExLOJy4DxkkcV61jOFKQQRhCOOjGY0gxiEBRbFFkeSpDfD41evHnqVrmIV
dXyv+nFJL8ZrcWVOURQDYAOw4slEDkAIkSSESHnw807AQFEUG+AeugUUD5V/8NwLZWgIfftCcDBs
26ZL5kaNAmdn+PFHiIp6/vfUN9SjYd9q/BDchWHb2lDGyZy1o07wtdNKtv4YQHJ0er79zRvXocrW
GdS6uI5WPbow7b4Vq1RufOzihp6eHuPGjcuVyI0fP57Zs2eTZVqK8iOm4L4jjHLDp5Bx8yLXvmrN
5d71iNuzGvFg5eyz6Kn0aVClB992/oeRH+7B3sqVDae8+HqlExtPjScxLeL5T0YeDDCgBz04xzl2
sxtXXPHCiwpUYDzjiaB44kiS9GZ4/OrVQ6/SVayiju9VPy7p1VJiV+YU3eWfJUCcEGLUM9o4AJFC
CKEoSgNgPeCMbgFECPAeuiTuDNBTCHExv5j/9spcXk6c0G1rsmULGBvrrtKNGQOVCjcVLU83jkew
xzeIoC2hGJjo0bh/dVqNcce2UsFXvNR3I4mauYroBRu5lxKPS6smOH3dH4sWnoSFhVG5cmU0Gg1l
ypThq6++Yvjw4djY2KBVZxK3cxkRS/3IDAvBsFxF7HuNxaZjP1TGBW+nAnA7OgD/IF/+ubUBPUWf
d6r1pbX7OOytqhX9ZOThDGfww4/1rMcQQ/rQBy+8qErVYo0jSdLrp+6CugRGBD71fB2HOpwbdO4l
jCi3oo7vVT8u6cV45feZUxSlCXAECAYeft34BnACEEL8rijKV8AQIBtIB8YIIY4/6P8hMBNdYrdI
CPFrQTFfRDL30JUr4Oenm0un0UC3brrFEm+9VfT3DL8cz96p5zm57BpajaBe14q08amDU12bAvtm
xycRPX89UbPXkB0Zi6lnTRaUUzNry5pc7UxMTOjfvz9jx46lYsWKCK2WhENbiFzqS2rwSfStbLD7
dAS2XYaib2VdqHFHJl7j7/PTORHyF9maTDxcPuaDOuOpaNegSOfhWa5xjWlM4y/+Qo2aTnTCBx8a
ULxxJEmSJOlleOWTuZfhRSZzD92/D7Nmwfz5kJwMrVrB+PHQsmXRV8DG30tl/6xgDv9+mYzkLGq8
X442PnVwbelY8ArYjExil+4g0m8ZiddD2WmjYbmIICw29z1hlUpFt27dWLRoESYmJgghSDl3hMil
viQe3YHK2BSbTl9i13M0RmWdCzXupLRI9l+YzaHL80nLjKda2ea09vDCrULhKlMUViSRzGY285hH
Agk0pzleeNGWtigUXxxJkiRJKkkymctDSSRzDyUkwIIFMHMmRERA3bq6pO6TT0CviDXm0xIyObzg
MvtmBpMUkY7TWza08fHgrU8qotLLf7qj0GhI2HSAiClLSQq4yEHLLJabJXIhPCynTaNGjTh27NhT
fdOvBxOxbCpxu1cCgjKte2DfxwvTqu6FGneGOpkjV/6PfcEziE+9S7kytWnt7kX9Kp+ipyp4kUdh
JZPMH/zBTGZyl7u4444XXnSnOwYUXxxJkiRJKgkymctDSSZzD2VkwPLluluwISG6uXTjxsHnn4OJ
SdHeMysjm5PLrrF36nkiQxKxqWRB63EeNPy8GoYm+vn2FUKQcvAsEb5LSdx9jDPGalbaqTkaFsKW
LVvo2LFjTtvRo0fTqFEjOnfujJ6eHuqIMCJXzCBm8/+hTU/FslFbHPp4Y16vWaGutGVr1Jy5sQr/
ID/ux1+kjLkTrWqPobHrFxgbFHE5cB7UqFnJSvzw4xKXcMaZ0YxmAAMww6zY4kiSJEnSiySTuTy8
jGTuIY1Gt0jC1xdOnQJbW9i+HRr8i+ldWo2WoK2h7J4cyO3T0VjYGtNihBvNh9bErIxxgf3TgkKI
9F1K3Jq9hJDG2706U9a7Dya1KvPPP/9Qr149ACpXrsy4cePo27cvJiYmZCfGEb1uHlFrZpMdH42Z
29vY9/HGqtlHKIW47CiEIDhsB3uCpnA94ihmRmVoXmsYLWoNx8LEtugn5AlatOxgB774cpSjlKEM
Xz34Y0vxxZEkSZKkF0Emc3l4mcncQ0LA4cO6OXULF4JZMVwoEkJw7XA4e3yDuLDzDkZm+jT50pVW
Y9wpU6HgK16Zt+8TOX0FsQu3oE3LoFT7pnyvvsZq/x252tna2jJixAiGDh1KmTJl0GakE7v9LyKW
TUV97yZGTlWx/8wL6w8/Q2VUcDIJcDPyJLsDJxMUugUDPWMaVe/P++5jsbX8F8uB83CCE0xmMlvZ
ijHGDGAAYxhDRSoWaxxJ+rfCk8P5dMOnrOmyRu4fBgSGB9J8SXMO9zuMu33hpnZI0ptCJnN5eBWS
uRftXnAce3wDObP6BgANelShtbcH5dzKFNg3OyaBqLlriZ6zlqiYaDaWV1idcJOElORc7czMzBg0
aBBTp05FURSERkP8/g1ELplC2pV/0Ld2wL7HSGw+GYy+hVWhxh2RcAX/ID9OXluGVmioV7Erber4
4GRT9/lPQj4ucxk//FjOcjRo6EY3vPGmLsUbR5KKauiOoSw4u4DB9QYzt93clz2cl85tnhsXoy9S
y7YWF4ZeeNnDkaQSJZO5PPwXkrmH4sJS2Dv9PMf+vEJmaja12znR2tuDqk0dCl4Bm5ZBzKItRE5b
QcLtO+yw07I8+z734mJy2nTq1ImNG3Pv8yyEIPnMfiKWTCH51F5UZhbYdh6EXY9RGNrlWW3tKQmp
99l3YRaHL80nIyuZGuVa0cbDB9dy7xXrCth73GMWs5jPfFJI4X3exwcfWtJSroCVXhpZezO3wPBA
6v7x6ItW0OAgeXVO+k95LSpASMXr8Ty8jJM53Wc2YlJYTzr+7Mnt01FMa7aNKY22cG7TLbTaZyft
KlNj7L7qjtu1jdRaOYk+jrXYEOfE/6xq4+pQHgAfH5/H4gpGjBjB0aNHsajfkmpz/amx/B9KNW5H
5IrpXOhYkdsT+pNx+0qBx2Bl5sgnb09hUs8wOjeYwr24C8zc+T4TN3kScGMtGm3+lSkKqxzl8MWX
O9xhMpM5z3la0QpPPFnHOjRoiiWOJD0PWXszt96beuf6veeGni9pJG++5n8156ud+VbELBYuM12Y
enzqv36fg7cPokxQiEmLKbjxA38F/oX5xOJbbPcqk1fmXmNxcbrFFWvXQsWK8P33j/a2U6dnc3zx
VfZOPU/MrWTsq5WitZcHb39WFQOj/BctCCFI3nuKiClLSNp/mmBTDe8P/wL7kT0wKGvD7t27adu2
LQANGzbE29ubjh07olKpyLx3i8jl04jZuhCRmUGpZh/pVsB6NCrUMWVpMjl1bTn+Qb5EJoZgY1GJ
993H0qh6Pwz1i7gcOA8ZZLCc5fjhRwghVKIS4xjH53yOCcUXR5KeRdbezO3Jq3IPyatzz+/zzZ8T
kxbD9p7bn9kmLj0OA5UBFkbPX/N6xK4R7Lq+i2vDrz31Wnx6PI7THZn1wSwG1htIdGo0ZoZmmBoU
rrLQs6g1auLS47A3sy/0XZv0rHSS1cnYmdn9q9glSd5mzcObnsx16gTh4boNio8dAwMD2LABSpV6
1EaTreWfDbfYMyWQO+disXQw4b1RtWk2uCYmpQwLjJEacIlI36XEb9iPoq+HdZ92fH5hFwdPHs/V
rnr16nh5edG7d2+MjIzIio8meu0cotbOQZMYh3mdJtj38aZUk3YoqoIvCGu1GoJCt7InyJdbUSex
MLalhdtwmtcchplxwfMBC0uDhi1swRdfTnEKW2wZwQiGMYzSlC62OJL0pKE7hrLw3ELUGnXOc4Z6
hgyoO+A/OXfu4Vy5J8m5c88vv2ROrVFjqFfw//fnJygiiDoL6nCw70GauTTL9dqc03MY//d4wseG
FypRLI7xvEnkbdb/mCVLYM8e2LgRJk6EQ4d0mxWfe6Jkn56+ivrdK/Pt2c6M2vsh5dzKsGn8acY7
rWCDzykS7qfmG8fMsyaV1k6m1tUNWPfvSOyynXx1MoluzrUxNHi0Me/Vq1cZMGAAlSpVYvbs2RiU
tsVx0ARqbw+jwrhZqCPvcGNMRy59WpuYbX+hzVLnExVUKj3qVuyEz0fHGdv+IM629dka8ANfr3Ri
zfFRxKWE5du/sPTQozOdOcEJDnKQ+tTne76nAhUYxSjCKJ44kvSkE3dP5ErkQPcP2/G7x5/R4812
I/7Gcz0vFc7nmz+n/cr2TDk6hfLTy1N+um7qzJO3WTde3oj7fHdMfjWhzJQyNPurGZEpkXm+p4eD
B56OniwKXPTUawvPLaRbrW45idyTt1mVCQpzT8+l85rOmE0045t93wCwI2QH1edUx/h/xjT/qzlr
LqxBmaBwO+E28PRt1oe3UPfd3IfbPDfMJprRYkkLbsXfyomV123Wndd28vafb2PyqwnWvtZ0WNUh
5+r48vPLqf9/9bGYZIGdnx1d13XlXtK95zrfL0v+O85Kr6TYWJgzR3db1dFR91x4uG7bk2dt+6Yo
CjValadGq/KE/RPDHt9A9k49z74ZwbzTpyqtx3ng4PrslajGVSrgPP9rHH8aiP3s1VSet55+Wa5s
rKBiTex1ktJ0SeH9+/e5cuXRXDk9E7MHtV6HEOe/hsilvoRO6Mf9+d9h33M0Np0Gomf27G9viqJQ
zbEZ1RybcS8uGP8gPw5enMvBi3NpUKUHrT28KFem9vOfxCfjoNDswZ/znGcqU5n74E8PeuCFF7X5
93Ek6SFZLD239G/TX/YQ3liHQg9RyrgUu3vvJq+7cREpEXy6/lMmvTeJT2p+Qoo6hZN3T+b7nl/U
/YKx/mMuMX2QAAAgAElEQVT5re1vWBpZAvBP+D8ERgQyp+2cfPtOODSBie9NZGrrqSgohCWG0Xlt
Z4bVH8ageoMIjgpmrP/YAo8rU5PJpKOTWPTRIoz1jem7uS+DdwxmT+89ebbffX03HVd1ZHyT8Sz+
aDFaocX/hn/OvFW1Rs2E5hNwtXElJi0Gn7996LGhB4f7HS5wLC+dEOKNfdSrV0+8idatE8LOTgit
9tFze/cK0aGDENu3P93+xg0hNmwQIjMz9/NRNxLFiqFHxDDjP8VAFoi5H+0WN05EFGoM2UkpImL6
chFU/kNxkDpirIOHsLcqI1Qqlbh+/XpOu8zMTDF69Ghx5coVIYQQWq1WJBzbJa4MbC4C6iHONbcS
d+d8LdQxhYsrhBCxyaFizbFRYvhCMzFwAWL2zg/F1XsHhfbxE1IMQkWoGClGCjNhJhCIdqKdOCgO
Cq0o3jiSJEnFqe+mvqLdinY5P9v42oiMrIxcbZotbiaG7RgmhBDi7P2zgp8Qt+NvFzpGYkaiMP3V
VCwIWJDz3NDtQ4XrHNdc7ZxnOAu/Y345v/MT4qsdX+VqM37v+Kf6/Xr4V8FPiFvxt4QQQhy4dUDw
EyI6NVoIIcTic4sFPyGuRF/J6bM8aLkw/MUw59+CxecWC7NfzXJeb7Swkei+rnuhj/Fy9GXBT4g7
iXcK3effAgJEEfIdeZv1NbR4MXTt+mixQ3Ky7vZqRgY0yz19gfR0CAqC334DGxtdmbGHbCtZ0nNu
EyaG9qTd929x7XAEUxpuwa/pVoJ3hOW7AlbPwgz70b1wu7EZt79+oZ91NTYlOPO7tSfm206hSUkD
YOXKlcyYMYMaNWrQuXNnTp06RalGH1B9wQFc/zqFRf33iPhrMsEdnAmdOJiMsKcn1D6pjLkT3RrN
YFLPMDp6/kJo9BmmbW/OlC0NCbq99bnP57M44cRMZhJGGD/zM6c5TXOa04hGbGITWrTFFkuSJOlF
cbNzw0jf6Jmve9h70KpSK9zmu/HJ2k+Yf2Y+0anRAIQlhmE+0TznMfHIRAAsjSzpWrMri87pbrVm
ZGew8sJKvqj7RYHj8XTMPSXsSuwV6jvWz/Xc2+XeLvB9jPSMqG5TPed3RwtH1Bo18RnxebY/F36O
9yq+98z3+yf8Hz5a/RHOM52xmGSB5x+6cYYlvvrTbWQy95rJzARzc6hQ4dFzR47o5sy1a6d7TftY
jmFiAs2b6+rFmphA5IMpEI+3sbQzoePPnkwK60m3mQ2JDU1mTvvd/OK+nhNLQshWP3vbDpWhAdZ9
21Pz/GpqbJvFu67u3B09nWDnDtz9fh6+kycDuivAmzZtomHDhjRr1owdO3ZgWqs+lX3XU2vDVazb
9SV2+19c/KQ6N3y6knrxTIHnwsy4DO3e+o6JPUPp0XguyenRnA979uqtoipDGb7ne0IJZQ5ziCSS
znSmJjX5kz/JJLPYY0qSJBUXM4P8Sw/pqfTw7+2Pf29/3O3cWXhuIVV/q0pQRBCOFo4EDg7MeQz2
HJzT74u6X3Dq3ikuRV9i4+WNpKpT6evRt+DxGBZPzWx9Ve6ZYg9XuT68bfo8UtWptFneBlMDU5Z1
WsaZL8+wu/dugKfmtr6KZDL3mjEyglatdIsf1Go4eBCmT4fy5eGLB1+Inly1Xbq07spdUpJusQTo
aseC7vnUB2sgjM0NeG9kbX690YN+S5uDAn99fpDvKq/m7xnnyUh+9n/QikqFVfumVD/8f1Q/vgiL
d+sS8b+FjL1lwHvOrrnaHj58mPbt2+Pu7s6GDRswdqqK87cLqL31Ng59fUg+tZcrfRsQMrglicfz
nuPxOEN9E5rXGsrP3a/S5R2/fNv+GyaYMIxhhBDCalZjiilf8iUVqYgvviSS+MJiS2+u8ORwmv3V
jIiUiBferyRjlbSSHOObGEtRFBpWaMiPzX/kzJdncLRwZM3FNeir9KlSpkrOo4zJo90Emjo3pbp1
dRb+s5CF5xbSsXpHbM2evw62q7UrAfdz7zxx+t7pf31MT6pbti77bu3L87UrMVeISYthYsuJvOv8
Lq42rkSlRhUpzsv4+yKTuddQ5866W6a2trpFELVrw4QJuqtyavXTyRzoXh88GAwNdW0MDHS3Z/v2
BQcHGDoUEhJ0bfUMVLzzWTV+ON+F4Ts/wLayJevGnORr51Vs/u4MSVH5T1Q2b+hO5U1Tcbu8gfc+
64ZvuBWrlVp0dnFDX+/RN6kLFy5w4cKjLQcMbBwo99Ukam8Po9xIPzJCr3J9RFsu96pL3O6ViOz8
NxDWU+ljYlgq3zbFQR99utOds5xlL3upSU188MEJJ3zw4T73X/gYpDfHL4d/4WjY0efeMLgo/Uoy
VkkryTG+abFO3j3J/w7/jzP3zhCWGMbWq1u5k3SHmrY1C+zbv25/FgUu4sCtA4W6xZqXwZ6DuRF/
g3H+47gac5WNlzey4OwCgGKt0PNt029Zd2kd3+3/jkvRl7gYdZEZJ2aQlpWGUyknjPSMmHN6Djfj
b7IjZAffH/i+SHFext8Xmcy9hqytdRsFX74Mq1fDjBm655KSdMnak3bu1M2bmzRJ9/vDZG/xYnB3
h0WLdCtky5WDb7551E9RFNzaOjH2YAd8TnxEteZl2T3xHN84r2TFkCNE30jKd5zGri64/Pk9bre2
0thrIN/FlmGzpgb9nDwwNzHFxMSEYcOG5bRPTEzkxx9/JDYtA4fPxuG29RbOPyxCZKm59V0vLnSq
QtTq39Ck57+dSnHK76qggkIrWvE3f3OWs7SlLVOZigsuDGAAVyi4Aob03xaeHM7iQN2qusWBiwv9
Tb4o/UoyVkkryTG+ibFKGZXi2J1jtF/Vnqq/VWWs/1i+f/d7erv3LrBvX4++pKpTKW9ZnjZV2hQp
vrOVMxu6bWDr1a14/O7BjJMz+KHZDwAY6xsX6T3z8mHVD9nUfRO7ru+i7oK6NPurGQduH0ClqLA1
s2XJx0vYfHUzNefWZMKhCUxvPf25Y7y0vy9FWTXxujze1NWsedm0SYhKlZ5esarRCOHpKcTw4brf
s7J0/5uWJkT9+kJ89diiohs3hNiyRffzsxaGhl+JF0sHHBJDDf9PDFL9IRZ03StuB0QVaozZCcki
fPJiEejQWuzHQ/xflZYidvUeoX0wqMmTJwtAGBsbiyFDhuSsitVqNCL+4BZxuV8j3QrYltbi3u8/
iqz46ELF/TdS0mNFcOhOsfjA52JbwIQCV8zeEDfEUDFUGAtjgUB8LD4WJ8SJFz5O6fU0ZPsQYfiL
oeAnhOEvhmLo9qEvrF9JxippJTnGNzXWq2bmiZnCcpJlse9S8KL928+MIq5mlRUg3iDJyWDxYMu2
Xbugbl24dw8aN4aoKLC01NVzVRS4dQsWLNAtjPDw0F3dq1Yt9/tFRsL581Cnju6W7uMSw9PYNyuY
Q/MvkZGUhet75Wjj7UGN98sVWGpFm6kmbtlOIqYuI/NqKIaVylFqRDfenjSOiMhH32JUKhVdunTB
29ubevXqAZASeIyIpb4kHt6KYmSCzUdfYN97LEaOLv/29OVpvn8nEtPCqe7YkhuRx9BTGTD4/Q0F
3s6NIoo5D/7EE08TmjCe8bSlLSp5QVyi6OW8itKvJGOVtJIc45sa61Uw9/Rc6perj62pLSfvnmT4
ruH0qt2LWW1nveyhFVpxfGavfAUIRVEqKIpyQFGUS4qiXFQUZWQebXopinJeUZRgRVGOK4ri8dhr
tx88H6goyn8nQ3sODxM5IWDHDt2Gwg0awCef6BI5eHSL1cUFJk+Gu3fByQn+/PPRoojMTN2t2bp1
dW2cnODbbx+9DlCqrCmdJ7/N5Du96Oz7NhGX45nVZie/1tvI6ZXX0WQ/ezWRysgQmwEfU+vSOipt
9MPAtjQRo6YzJt0Wd0fnnHZarZa1a9fi6elJq1atOHr0KOZ1GlNl+hZqrrtEmdafErNxARc6VeHm
tz1JuxpYjGcTToQs4eKdPQx+fyOdGkxkXIdDJKVFEBZT8GavdtjxMz8TRljO9ibtaU9tarOEJWSR
VaxjlV4/vxz+5alVdxqhKXCeTVH6lWSsklaSY3xTY70Krsddp9OaTtSYW4PvD3zPYM/B+LV+cQva
XoSX+ZmV5CWCbGCsEKIm8A4wTFGUJ2dX3gKaCSFqA78AfzzxegshRJ2iZK3/JYqiqxBx7x4MH66b
V9enj24fOo0GsrJ0bdJ0W8HRsyf8/vujbUvWr4dZs+DLL2HfPjh6FI4fh5iYp2OZWBrSxsuD/93s
QZ+F75KVrmFhr/18X3UNB+ZcIDP12UmLolJRulMLqp9YTI1D/8fHTVqw8L41vxu78a5T7suE+/bt
y7VYwqRiDVx+XITblpvY9xhF4pFtXO5Vl2tftSHpzP4CV8AWJCUjlgMX59Dure+xMtOV2UhMC8dQ
3wyV8qjMxsO/uM+KZ445IxnJda6zjGXoocfnfE4lKjGd6aSQ8q/GKb2+ilrOqyj9SjJWSSvJMb6p
sV4FMz6Ywb0x98j4LoPrI67zv5b/e+1qtr7Uz6wo92aL4wFsAd7P5/XSwL3Hfr8N2DxPjP/SnLn8
3LsnxG+/6X6+fVuIFStyv756tRAffCBEUpLu9R49hBg9Wojs7EdtatQQYuXKgmNpNFoRuOWWmNxw
sxjIAjHa+i+x9acAkRyTXqixpp2/Jm5+9r0I0G8gluvVEh1cagmVSiXs7OxEWlpaTruwsDAxZ84c
kZqaKoQQIisxTtxfNFEEtrYXAfUQlz7zFHF71wrt4wfxHAJurBNjl9rlmq9x6c5eMWdXB3E+NHeZ
DY1WI9adGCs2nPQR6qz8j1MrtGKH2CGaiWYCgbASVuIb8Y2IEIWvgCFJkiS9mXidKkAoiuIC1AVO
5dPsC2DXY78L4G9FUc4qijLwxY3uzePoCF89qKccEgIjR8Jnn+l+9veHqVPhrbfA2Fi3b51aDR06
PKrzeveu7irfg2lr+VKpFDw6uuBz/CO8jnSkUkN7tv90lq+dVrJ6xDFibifn29+kdhUqLv2Z2je2
8O7wfkyILs0mbU0mOb1D9ulLOVfAZsyYwVdffYWzszM///wziVlayvb7mtpbb+P0zQI0KYncHN+N
i11ciV7/O9rMjHzjPun41cXUq9g1Z/5fhjqZsNhzZGkyqFo2d5kNlaKiWc2h3Ik9h/fysqw7MZas
7LzjKSh8yIcc5CAnOEFLWjKJSbjgwhCGcJ3rzzVOSZIkSSrxBRCKopgDh4BfhRAbn9GmBTAPaCKE
iH3wXDkhxD1FUeyAvcBwIcRT1W8fJHoDAZycnOqFhoa+oCN5fcXGwvjxuluorq66feamTdNtLvzt
txARAXPn6pI7gO++022DMn8+2Nk9f7z7F+Pw9zvPqRXXQIDnp5Vp4+1BeXfrAvtmxyUSPW8dUbPX
kB0dj9nbbhgO+Rj3Yb1JTX20RYmpqSkDBgxgzJgxODs7IzQaEg5uJmLJFNIunUG/jB123Udg23Uo
+pal842Zpclk8YE+ONm8xQd1fAAIDtvJoUvzqFHufd6rPRKt0KJSdN+FhBA5SV9iWjjz9nxMaPQZ
Pm+xlHeqFry0P4QQ/PBjKUvJJptP+ARvvPFEziaQJEn6LynqAogSTeYURTEAtgN7hBB5buCiKIo7
sAloK4QIeUabn4AUIcTU/OL911azPq/UVN1VOCurRwsjWrfWXaV7UIWLu3d1Cyj694d+/fLex66w
4u6ksG9mMEcWXCYzNZuabcrzwfg6VGtWtuAVsOkZxP61nYipy0i6eYftthpWaMO5Exudq52enh6f
fvop3377LTVq1EAIQcrZQ0QsmUzSiT2oTM2x+fhL7HuNwdC+/DPjHbn8f5y5sYoRbXdzI/I4O8/9
DzvLKnzyzlSMDcxzJXBAruRu8YE+RCfdpFvDGbjY1Sc0+iwOVq4YFVBSJ5xwZjKT3/mdJJJ4j/fw
wovWtC7WjTMlSZKkV9Mrn8wpun/5lgBxQohRz2jjBOwH+gghjj/2vBmgEkIkP/h5L/CzEGJ3fjFl
Mvd8hNDdgn1YWQKge3dIT4eZM6FSpeKJkxqfyaH5l9g/6wLJUem41LeljY8HdT52QaWX/51/odEQ
v2E/kVOWkPTPZfaXymK5SQKXIu7kardx40Y6deqU67m0kCAil/kR578aULBu2wv7z7wwqVzrqTgp
GbGsPDqEi3f2UN7aHWcbTz6oMx5LU3uyNWr0H5uY+zCxuxcXzMZTPqSrE+nd9A8cy9QiXZ2I39am
xCTf4p2qn/Fx/YmYGlnle4xJJLGABcxkJve5T13qMo5xdKMb+ujn21eSJEl6fb0OyVwT4AgQDDxc
u/sN4AQghPhdUZQ/gU+Ah/dGs4UQnoqiVEJ3tQ5AH1gphPi1oJgymXt+R49Cx466q3OWlnD2LOzd
+/QedMVBnZ7NiSUh/D3tPFHXk7CrYsn7Xh407FMVA+P8kxYhBMn7ThPhu5SkvSc5aaJmlW0mx8Ou
Ub16dS5duoRKpUsML126xOXLl/n444/R09MjMzyUqBXTidn8J9qMNEo1bY9DXx/MPBo/dYUwIfU+
AkFps3JotNmos9MwMbR8ajyRiddYcWQQBnomfPbu/+WsgP07eCah0QHUcfmIszfXExy2nZZuI+nU
YGLB5wc1K1jBFKZwlau44MI4xvE5n2NG8RSqlqRXTXhyOJ9u+JQ1Xda88P3USjKW9HK9Lp91UZO5
l16l4UU+5GrWoklJEWLiRCHWrdNVhRBCV0niRdFka0TA2hviV8+NYiALxDj7pWLHr/+I1PiMQvVP
/eeyuPHp1yJAVV8s0aslln/QV6RfvpXzeo8ePQQgqlatKhYsWCDS03UrTrPiY8S9PyaIwPdsREA9
xOV+DUX8gU1C+4yDPXdrk/hmZSWRlZ27zMbNyFNi4sYG4nf/LiIm6XbO85lZaWLixvpi5dFHZTai
Em+IwFu6MhuF3dlcIzRii9gi3hHvCATCWliLn8RPIlq8+AoYklTShmwfIlQTVCVS7aAkY0kv1+vy
WSMrQDxNXpl7vQghuHrgPnt8g7i05y7GFgY0HViD90a5Ubq8eYH9M2/eJXL6CmIWbkVkZFLqo2Zk
fPYeHt06oNU+2sjR3t6ekSNHMmTIEKysrNBmpBGzdTGRy6eivn8bI+fqOPTxpkzbXqgMjXLFyFAn
Y2xokfP79YijbDr9NVam5ejTbGGueXExSbc4fHkBp64vp3wZD7o1nIG9Ve5LnElpkdyNO08F6zpY
mDxRZuPJ84PgGMeYzGR2sAMTTPiSLxnDGJxxzrevJL0OHt9B/0VXOyjJWNLL9Tp91q/8bdaXQSZz
r687QbH4+wYRsOYGikqhQa8qtPbywLFm/itRAbKi44n+bQ1Rc9YSGx/HuvKwOv4Giam5N+i1sLBg
0KBBjBkzhrJlyyKys4n/ex0RS31JDwnEwNYRux6jsO08CD3zp2+tpmTEMGnT29Qs35r29X6glGnZ
Z65yXXFkMMYGlnRqMAmVSo8sTSZX7u1j2eEBOFjV4GbkcVq5j6VjvQmoVHpPxXrSRS7ihx8rWIFA
8Cmf4o037rgX5vRK0itp6I6hLDy3ELVGjaGeIQPqDmBuu7mvfSzp5XqdPmuZzOVBJnOvv5jbyeyd
dp5jC6+Qla7BvYMTbbzrUKVJwd+qNKnpxC7cQuS05cSH3WObvZYV6nuEx8fmanf8+HEaNmyY87sQ
guRTe4lY6kvy6X2ozCyx7TIE+x4jMbApm6tvSkYs5sa5t1jRCi1CaNBTGaDOTsNQ35Rr4UeYs7sd
E7pdwcrMkVPXVnDy2lIq2r1DR88JhEafZf3JcXz53mosTe0LfX7ucIeZzOQP/iCFFNrQhvGMpxnN
5ApY6bUi655KL8Lr9lm/8rVZpf+2tDTQPrtc6zPZuFjQ47fGTL7Ti/Y/vsWN45H4Nd2Kb+MtBG29
jVb77C8jemYm2I34FLfrm6m1fCL97GqwMd6Jn0u7U9Vet0ChadOmuRK5gIAAjh8/juU7rak2729c
lwVQqtEHRC7zI7iDC6H/+5KM21dz2psbW/PkF6KE1HucvbkeAEN9U91zafep7NAYYwMLYpNDCQ7b
QdnStWj/1g8AONvWIzk9kiv39z/X+alABaYxjTDCmMhEznGOFrSgAQ1Yz3o0aAp+E0l6Bci6p9KL
8F/5rGUyJ5WIH38ENzdYvBgyM5+/v7m1MR1+8mRyWC+6z25Ewr1U5n3kz89u6zi2+CpZmc9OWhQD
fax7taVG0Cpq7PyNbh7vsCLSgZlmboxx8SQr8tGVOh8fH5o0aUKTJk3YunUrJtXrUmnSGtw2hmDz
0RfE7lzGxa41uOHVmZTgk7r3f2IFbFTiNdYcH8Gi/Z8RmRDCpbv+7D0/FSfrtzDQNyYk/CAarRoP
5w45t1TjU+4Sn3oPZ5tClNnIQ2lK8zVfc5vb/M7vJJBAV7riiisLWEAGz1cBQ5JKmqx7Kr0I/5XP
Wt5mlUrExo3w888QFKQrLzZ6NAwcqNv+pCg02VrOrr3JHt8g7gbFYlXOjFaja9PkS1dMLAve2Tj1
9AUifJeSsPEAiqEB1p+3524bd5p07pCrXc2aNfHy8qJnz54YGhqSFRtJ1JrfiF4/D01SPOZvvYtD
Hx8sG7fNldSlZMSy6fR4rtzbh4OVK5YmDnRpOA0zo9JsPv0tSekR9Gg8FwN9XZmNzWe+IyL+Mj2b
zsfSpAhlNp48P2jYyEb88OMMZ7DHnhGMYChDsSL/fe4kSZKkl0POmcuDTOZeLULoasH6+sL+/bpE
buhQ3UbFDkWcuiCE4JL/XfZMCeLqgfuYlDKk2ZCatBzpRikH0wL7Z4SEEjl1ObFLtnNXncoyF9hy
9zJZ2dm52pUrV47Ro0czcOBALCws0KQmE7P5TyJXziAr8g4mVWpj/5kXZdp8iqJvkNMvMyuVbK0a
U0OrnGRv5o7WONm8Ree3dWU24lPu8vveT2hcvT+NqvfLtSHxvyUQHOAAvviyhz1YYMGXfMloRlOe
Z1fAkCRJkkqeTObyIJO5V1dAAEyZAhs2gIEB9O0L48b9u82JbwdEs2dKIOc23ELPUI93+lSl9Th3
7KsVfCUqKzyGqNmriZ6/nvDEONY7qVgXc43ktLScNoqicPXqVapWrZrznMjOIm73KiKW+pJx8yKG
Dk7Y9RyNzccD0DN9ejsVIQRrjo/EwsSWdm/pymz88Xd3srLT6dZoJraWxVRmIw+BBOKHH2tYgwoV
veiFF17UpOYLiylJkiQVnkzm8iCTuVfftWswfbpuLp1aDZ06wfjxUL9+0d8z8loif087z/G/QtCo
NdTp5EIbnzpUbFDw7UtNUgrRf2wiasZK4u6Hs8UBVqaHEZUYT5cuXVi3bl1O2xMnTmBjY0PVqlUR
QpB0bCcRS31J+ecwepalse06DLvuwzEokzvu9YijzN3TESebtzA2sCQs5iyjPtz71B50L8ptbjON
aSxkIemk05GOeOFFE5qUSHxJkiQpb7IChKwA8VqLiBDi22+FsLISAoRo1kyInTuFKGSRhDwlhKeK
Td+cEqOsFouBLBBTm20VwTtDC1V5QZOpFtGLtogLNbqIY9QVP1i7i33ek0R2SprudY1G1KpVSyiK
Ij755BNx+vTpnL7J50+I62M/FgGeijjbyFiETh4qMu5cz/X+GeoUsfOfiSLgxjoRlagrs6HRvsAy
G3mIFtHiB/GDsBbWAoFoLBqLLWKL0IiSHYf06rufdF+8u/hdEZ4c/kL7vIx+RVGSsaTc3vRzTxEr
QLz0hOtFPmQy9/pJShJi+nQhypfX/ddZu7YQy5YJoVYX/T3TkzKF/7Qg4VN+uRjIAvGz+zpxYlmI
yFYXnLRoNRoRv/mAuNyonwignjhn3VLc+2mB2LJitQByPZo3by527dqVkyym37osbv38hTj7jqEI
qK8SN8Z3F6mXzxb9QF6QVJEqZovZwlk4CwSihqghFolFIlNkFtxZ+k8oSimkopZPKul+RfG6lIZ6
E73p576oyZy8zSq9ktRqWLUK/Pzg4kVwctKtgP3ySzArYo35bLWG0yuv4+93nvBL8ZRxMqfVmNo0
GeCKkZlBgf1TjgUSMWUJiduOcMU4mz/tMzgYevWpdu7u7nh7e9O9e3f09fVRR98natUsojf8jjY1
CYsGrXDo443F262e2tbkZcomm7WsZQpTOM95HHFkNKMZyEAsKeKyY+m1V5RSSEUtn1TS/YridSoN
9ab5L5x7uWmw9EYxNNQtijh/HrZtA2dnXTLn5AQ//ADR0c//nvqGejT6vDo/BHdh6NY2lHEyZ+2o
E3zt9P/snWdYVEcXgN9LbzYUsSL2AgiKJWossZcUe4saY40aKwIa05PPCNhj7yX2bmyIib3GAigg
KipYqIJIX9id78fFTllWsN43z31k587MOXdYNmfPzDlnPbt/PE9CdEqO4y2aOFFl9yxqBWymSe8u
zLhflA169nS2tUdf/2kJLn9/f4YOHUpcXJz8LFZlKDfGg9p7wyg72oOUkCtc/7YtQf2ciT24CfFC
5OybwgAD+tIXX3w5wAGqUx1XXLHBhu/4jnDC37SKCm+AZ5OuaptsVZcxb2KcLrxOWQrPo6x99iie
OYV3hlOnZE/drl1gYgKDBsGECVDpFQJAQ05F4O3ph9+uUAxN9WkyqDptXGpTomLunijV3UiiZm8g
evF27iXGsdVGny1RwSSnpjJq1CjmzZv3pO/JkyepVq0aVlZWaFRpxO77i4g1nqSFXcOobEWs+02k
xGcD0TPJPZ3K6+Q85/HEk61sxRBDBjAAN9yoStXcByu88+hSCknX8kmve5wuvGulod4nPpS1Vzxz
Cu89jRvDjh3ytmufPrBkCVStCr17w8WLus1ZuXEpRu5sx8+BPajfuzLHl1zlh6qbWNbnH8IuxeQ4
1qicNeWmj8MhbA/O/xvP+DRrdqdWZ3QZRwbXbIhQy1Up0tLS6NGjBxUqVODbb78l9N59SnQejN3W
ICVZ0nIAACAASURBVCp5bcfQ0po7HqO4/GkFwpf9RkZ8rE7PkqFWsfbYUG5FndNpfFbUox6b2Uww
wQxiEGtZS3Wq041unCP/5Ci8nehSCknX8kmve5wufCilod5GlLXPGa2NOUmSzCRJaixJUmdJkro+
exWkggoKL1KzJixfDrdvg4sL7NsHzs7Qti0cOiQnJ84rpWsW46sVLZh6uw+txjtweW8Y/6u7nTnt
9hH0zz1y8mAbFCtM6e8G4XB7N7UX/8gws4povp1DQI3uRC/aytqVqwgPDyclJYX58+dTpUoV+vTp
g6+fH8U+6UL1FaeotuQo5vYNub/oRy53Ks+dGeNQRYTl6RnC4wK5eHMr03Y2ZMbfLbgStj9HvfNC
VaqykIWEEsp3fMe//EtDGtKc5uxnP4L318P/IaNLKSRdyye97nG68KGUhnobUdY+Z7TaZpUkqTWw
ASiexW0hhNDPov2No2yzfhjEx8OiRTB7NkREQN264O4OXbuCgYFuc6bEqzi6MJB/Zl/mUWQKNs4l
aOfmSJ2uFdE3yPk7kFCrebjjMBEea0g+H8jZIhoWmj3gSvjLxlnbtm1xc3OjZcuWSJJEyo0rRKz1
IvbAegAs2/bGeoArZlVra6V3qiqB41eX8s/lWcQl3aWspQNta7tSv0pv9PVyD/LQlgQSWMpSZjGL
u9zFAQdccaU3vTEk/+QoKCgofEgUaNJgSZICgP+A74QQ93XQ742gGHMfFqmp8Ndf8rm6a9fks3Qu
LvD112Bqqtuc6akZnFl7HZ/p/kRei6dEpUK0nehIo4HVMDLN2VIUQpB45AIRnmuIP3CS/0xUrC+p
4kTYtef6WVlZERoaiukzSqoiwohcP5uYHUvQpCRRuHEHSg1ww8K5uVYRsBlqFf+FbOCgnxf34wKw
tLChtcMEPq4xBGNDHcOBs0CFivWsxwsvAgmkAhUYz3iGMARz8k+OgoKCwodAQRtzSUBtIUSILsq9
KRRj7sNErYbdu2HaNDh3DqysYMwYuQ6spaVuc2rUGvx2h3Jgmi+3z0VTyMqET8bY02JkLcwtTXId
n+x3jUivtcRuPEgQSWwsD/vDgtBoNPz22298//33T/qeOnWKOnXqYGpqSkZ8LNFbFhC1aS4ZcdGY
2TWg1AA3irbojKSfu0NcIzRcCduHt58nNyKOY25sSQu7UXxiN5pCpla6LUZWctCwl7144cVxjlOc
4oxkJKMZjRX5J0dBQUHhfaagjbmDwGwhxD5dlHtTKMbch40QcPy4XAN23z4wM4Nhw+QI2PLldZ1T
cP1YON6eflzZdwdjcwM+HlqD1hNqY1n+5VqsL5J2+z6RM9fxYPkuwpLj2Warz+/z51C+QzMkSSIu
Lg4bGxvMzMwYM2YMI0aMwNLSEk1qCg/2rCJi7XRU925ibFMV634TKd5pAHrGuRuTACGRp/H29cA/
dDcG+iY0rv41bWq75Hs92FOcwgsvdrELE0z4mq9xwYVKFFzdWQUFBYX3gXwv5wXUfebqCgQCQ4CG
L9yrq012YqA8cDhzngBgbBZ9JGAucAPwf3ZuoD0QnHlvkjYylQoQCo/x9xeif38hDAzkq18/IS5f
frU57/o/ECv6/yu+0V8ivjFYIlb0/1fcvfxAq7Hp0XHi3s+LxaXiLcV5nEVQo69F3M7D4vfff3+u
qoS5ubkYP368CAsLE0IIocnIEA8ObhKB/ZzFeWeEb9tSInzlHyL9UZzWeofHBYnVRwaJkUuNxPAl
emLpod4iNDr/K1MEikDxtfhaGAkjoSf0RG/RW1wUF/NdTkGglK9SUNCed+G9+C7oKEQBlPMCNIA6
89+cLrVWgqD0Y+MMKARcA2q90KcjsD/TqPsIOJvZrg+EAJUAI8DvxbFZXYoxp/AioaFCjBsnhJmZ
/O7v2FGIo0dfrQZszO1HYuPYk+Jbs+ViGIvF3I77xLVj97WrAZuUIiL/3Cj8bT8T53EWv5VyFmUt
S7xUKszAwEAMGDBAXM60QDUajYg/e0gEj2wjzjsjLjYrJO7MnijSIu9qrXdc4j2x5fREMWZFITFs
MWLWnjYi4M5BrfTOC/fEPTFRTBSFRCGBQLQVbYWP8BEakb9y8hOlfJWCgva8C+/Fd0FHIQqgnJck
SRXy4N0L1bbvM/PvAuYJIXyeaVsMHBFCbMh8HQy0AGyBn4UQ7TLbJ2fK/SMnGco2q0J2PHgACxfC
3LlyNYmGDeUI2C++AD0dsy8mPkjl6IJA/p17hcSYVCp+VJJ2bo44fmGLnl7OQQsiI4O4LYeI8FxD
gm8wh4qm85dJHFcj7j7Xr3r16gQFBT0XBJF89RIRazyJ+2cLkqSHZcf+WPefiGnFmlrpnaKK52jg
Iv65PJtHKRHYlKhLW0c36lbshr6ejuHAWRBPPAtZyBzmEEEEdamLO+50pSsG5J+cV0UpX6WgoD3v
wnvxXdDxMfmeNFgIEfr4AioA955ty2y/l3kvr8raAnWAsy/cKgvceeb13cy27NqzmnuYJEnnJUk6
H61LzSeFD4LixeH77+VcdQsWyAZd165QqxYsXQppaXmf06K4CZ1+qMsfoX3pM78JCVEpLOrqw8+1
NnNi2VXS09TZjpUMDLDs056aF9dR03s+Peo2YW1ESeaa2tOwfOUn/VxcXJ4z5M6fP49JNUcqTd2A
/fbrlOgyjFjvDYQv0z6RpqlREdo7uTO17236N1tKWnoiy/7pzY+bqnM0cCGqjJzLnGlLEYowiUnc
5jZLWUoCCfSiF9WpzkIWkkL+yHlVlPJVCgra8y68F98FHV8VbQMg1EBpIUTUC+3FgSiRhzxzkiRZ
AEeB/wkhtr9wbw8wTQhxIvP1P4A7smeuvRBiSGZ7f6ChEOLbnGQpnjkFbcnIgK1b5bQmFy9C6dJy
BOyIEVCkiG5zqjM0XNx6k4Ne/oRdjKFIaTNajrWn+Te1MC1ilOv4pPOBRHis5uH2w1zRS2ZPRSOW
bttAUYfqAISGhlK5cmUqV66Mq6sr/fv3x9jYmPS4aERaKkaldIvy0AgNfrd34e3nwa2osxQyseIT
+zG0qDUScxMdw4GzQI2a3exmGtM4xzmssGIsYxnBCCzJPzl5QSlfpaCgPe/Ce/Fd0PFZCrqclwRZ
pngvDiRpK0ySJENgG7DuRUMuk3vIgRKPKZfZll27gkK+YGAglwU7fx58fMDODiZPBhsbcHOD+zpk
V9Q30KN+7yp8d74L43w6UsauGDsmnWOSzTq2uZ/l4f2c/3TM69Wi8hYP7IK30WLIl0wOMyHEsR8h
XV1JOnuFmTNnolaruXbtGkOHDqVixYp4enqSrGeksyEHoCfpUadiF9y/OI3LZ0epYFWf3ed/YPJ6
GzadGkdsYt4qU2SHPvp0oQtnOMMRjlCPenzP99hgw3jGc+c5Z/zrQSlfpaCgPe/Ce/Fd0DE/yNGY
kyRptyRJu5ENub8ev8689gI+gFa1NCR5b2g5ECSEmJlNt93AAEnmIyBeCBGOnLC4qiRJFSVJMgJ6
Z/ZVUMhXJAlat5YNugsXoEMHmDEDbG1hyBC4elWXOSVqti7HOJ9OTLnQFfsO5fGZ7s+UihtYM+Qo
EVcf5jjepEp5KiycjEPo35T67msSDp/n6kcDEbtOUtjsaWLe8PBw3N3dsbGxwd3dnfDw8Lwr+4Le
1Uo3Y3SHvfzQzY86FbtyJGA+UzZUYsW//bkXe+WV5n8iB4nmNGcf+/DHn6505U/+pBKVGMAAAgjI
FznaoJSvUlDQnnfhvfgu6Jgf5LjNKknSyswfvwI2w3OHWlTAbWCpECLniuTyXB8Dx4HLyFGwAN8B
NgBCiEWZBt885DQkycDXQojzmeM7ArORI1tXCCH+l5tMZZtVIT+4eVM26FaskKtMdO4se+saNdJ9
zuibj/CZ4c+pFcFkpKlx/MKWtm6OVG5knetYdWIyMUt3EDlzPXF37/N3KcFfqXeIfBj7XL8WLVpw
+PBh3ZV8hoz4WJKunCVi/0rC9O7ydwU/0tTJ2JfvQDtHd6qWbqZVZQptCSWU2cxmCUtIJpmOdMQd
d5rSFIn8k6OgoKDwNlHQSYN/AqYLIbTeUn0bUIw5hfwkOhr+/BPmzYO4OGjaVDbqOnbUPQI2ITqF
w38GcHheAMlxaVRpWop2bo7Yd7TJNQJWo0onbqM3EZ5reBRwAx9LNWsNorkRJXvkdu3axeeff/6k
f0BAAHZ2djrpGTKxC+kx4RSq35JEv5NoJLjVvyn/3lxCQmo0FUs2pK2jG062ndGTdFyMLHjAAxay
kLnMJZpoPuIj3HDjC75AT+tTIgoKCgrvBgVqzL2rKMacQkGQmAjLl8veujt35AhYd3f5zJ1R7nEN
WZKamM7J5VfxmeFP3J0kytgVo62bI/V7V8bAKOf4IqHREL/vJJGea3h0/CInzFWcqGTGep99GFsX
B+DChQvUq1ePpk2b4u7uTseOHbX2pD3Ys5rQP0Zgv/MGRlZlAAjoaY+N2zyMnRpyKnglPv4ziEm4
iXWRarSpPZGPqg3AUN9Yt8XIgmSSWclKZjKTm9ykOtWZyET60x9j8k+OgoKCwpsk3405SZJukXXQ
w0sIId7KOj2KMadQkKSnw+bNcrmwy5ehbFlwcZHP1hUqpNuc6nQN/20KwdvDl/tX4ihWzpxW4x1o
OrQGJoVytxQTT/sT4bGa+F1HkUyMKTHoc6xdvmTAZBc2b978pJ+9vT2urq706dMHQ0PDbOfLePiA
62PaU/STrpT+erL83DHh3HDpTLlx0ylUp6mstyaDi7e2cdDPk7CYixQxK01L+zE0rzUCUyMdw4Gz
0ocMtrIVL7y4yEVKU5oxjGEEIyhC/slRUFBQeBMUhDHn8sxLC2ACcA44ndnWCGgAzBBC/JpXwa8D
xZhTeB0IAQcOyEbd0aNQtCiMGgWjR4N17kfgsplTcGX/HQ56+nHtaDhmRY1oPsqOlmPsKVzSNNfx
qVdvE+G1hti1+1BnqPGyVbEjLJAMdcZz/cqXL8/48eMZOnQoFhYv15aNO7SVMM9R1PaOeOLJe3T2
EFEb52LVbThFPu70kt5X7/2D9yUPgsIPYWJYmKY1h9HKYRzFzLNMDakTAsEhDuGJJ4c4RGEKM5zh
jGMcZSiTb3IUFBQUXicFfWZuFXBNCDH1hfbJgJ0Qol9eBb8OFGNO4XVz9ix4esKOHfKW68CB4OoK
lSvnOjRbbp2NwtvTF98dtzEw1qfRwGq0neiIVeXCuY5V3Y8mavZ6ohdt535CHNts9NgSfZ3ElOTn
+vXv3581a9a8NP762E4Yl6mIjfs8ANRJCURvW8Sjsz5U9tqOvpkFQq1G0pe3guNP7ifhwhGSrpxB
XaE8p+qmcv7uDvQkfT6q2p+2jq6UKlpD98XIgotcxAMPtrIVffQZwAAmMpEa5K+c3AhPCKf3tt5s
6r4pT/mrfMN9abG6Bce+PkZt69oFqKHuOiq8OZTf2YdFQeeZ64oczfoiW4DPs2hXUPggadgQtm2D
oCAYMABWroRq1aBnTznViS5UbFiSb7a15ZerPWnYvyqnVgTzQ7VNLOl5iNALOVc5MSpjRTnPsdS+
sxfnaRMYq7Jmd0pVxpZxxKpI0Sf9Ro0a9eRnIQS3b99Go0pD38wCI+unOesSLx0n8eJRinzcSTbk
MjKQ9PURGg3RWxdyd7YL+mYWWPd3xTDyAU02hPKj824+rjGUczfW89Pmmizw7kxI5Gnyi7rUZROb
uM51hjCEdayjJjXpQhdOk39ycuO3Y79xIuxEnvNX9dvRj/i0ePpu61tAmj1FVx0V3hzK70xBG7T1
zIUDPwghlr3QPgT4XQjxVn5dUDxzCm+a8HC5/uvChRAfDy1bysESbdrIOe10IT48mX/mXObowkBS
H6VTo1VZ2rk5UrNN2VyDGjRpKmLX7iPCaw3x127jXULN9SqWrPt3P3qmJgDs37+fTz/9lO7du+PW
qCqFrp6iyp8HSPI7RfiK3zEuV4Vy46ZnGnPpSAaGPDyyi5jdKzAuW4myo/6HnokZAI/O/YNpFQcM
LUuSkBLN4StzORw4n+S0OKqUako7RzfsbTrmawRsNNHMZS7zmU8ccTSlKe6404EOBRYBq2vtR99w
X+osqfPktd83fgXmnXuX6lMqyCi/sw+Pgt5mdQN+A1YCZzKbP0LOP/ezEMIjr4JfB4oxp/C2EB8P
S5bA7NlyNQknJ3n7tWdPufqELqQ8UnFscRD/zr7Mw/vJlHcqTls3R5x7VELfIGejRWg0PNx1lEjP
NSSduYyBVTFKju6F1agetO76BUePHgWgiD7Mql8Se71ECtWsi3nNepQaOAnD4tZoVGnoGRkjNBpu
Tu7Fw3+3Uax1D5KDfTGtbEeFH1egZ2yKnpExmrRUEi8dJ+7fbWgMDbjVrCw+IYuITQyjdLFatHN0
o37lPhjo6xgOnAWJJLKc5cxgBne4gx12uOFGb3pjRP7JARi5dyTLLy1HpVZhpG/EkDpDmN9pfq7j
7BfYExD9NCmynZUdV0bmTzLm/NJR4c2h/M4+PAo8NYkkST2BsUDNzKYgYI4QIqvt17cCxZhTeNtI
S4N16+QasFevypUlJkyAwYPBzEy3OdPT1Jxbd52DXv5EXH1IcdtCtHFxoMmgGhiZ5WwpCiFIPH6J
CI/VPNp3kjQzI76ziuVoaPBz/UoYgoO9HcPcvqdb587oZajQt5DP7CVcPMbd2S6YVa+DzaSFaFKT
uTWlD1bdRzwJkAjz+JZEvxMUbtiGtLs3Sbt7g4ozd+KfeApvPw/uxV6mmHk5WjmMp2mNoZgY6RgO
nNX6kM4mNuGBB1e4QjnK4YILQxiCBS8HfeQVXWs/vuiVe0xBeOfetfqUCsrv7EOloM/MIYTYLIRo
IoSwzLyavM2GnILC24ixMQwaBAEBsHMnlCkDY8ZAhQrwyy8Qk2stlZcxNNanyaAa/BTQgxE72lKk
tBkbR59icoX17Pn1AokPUrMdK0kShZrVpereOdTy30jpbq2Zca8I6/Tt+NzWDv3MwIaYdDh8KYA+
ffqw+Nt+BH5ZB026XCJHMjRCk5aKdb+JSPr66JsXwqCYFQ/2/QXAozM+RG9fhO3Pqyk31ovKXtvQ
MytE8sUTNKz6JT9082N0+31YFa7M1jMuTF5vw85zU3iUHJn3xchqfTCkH/3wx5997KMylRnPeMpT
nu/5niiiXml+XWs/9tuRddxYQZyd+1DqU75PKL8zhbygpFBXUHgD6OnBF1/AyZNw4gR89BH8/DPY
2MjG3a1buswp4dTZFvdTXzDx2GdUbFiSv3+6wGSb9Wwcc5KY2wk5jjd1qELFNb/iELKLpqO/5ufo
YmxX16RfhdqYGhtnytCj43ee1Frvi56hESqViofRkagTH2JSodqTuRL9TlKo3icIjYbIdTMo8fkg
zKo5AqBJS0XP2ARJX/YaSpJEdfO6DLWagtsn+6lRthUHfP9g8oYKrDv+DVHxN/K+GFkgIdGBDhzh
CGc4Q0taMpWp2GDDCEYQQohO8+pa+zEkLmt52bW/Ch9Kfcr3CeV3ppAXcsoz9wioJISIkSQpgRwS
CAshcs+R8AZQtlkV3iUCA+W0JuvWybnreveGiRPl83W6cj8gloNe/pxddx0E1OtdmbaujpR3LJ7r
2IzYeKIXbCFq7iZioqPZURZS7CuwbO/2J6lIVq5ciduYUSxvWJJKTvWw7TeO6B1LSbp8mhqrzpJ2
N4RrI1pit/Xqk+oRSYHniVg5lWKtumPZvi/xJ/YS+vtQTCrWJNH/FNZfuqDf60sOBczm9LVVqEUG
dWy70s7JHVurPO8+5EgwwcxgBqtZTQYZdKMb7rjjjHO+ylFQUFDQhoJIGvwVsFEIkSZJ0kByNuZW
51Xw60Ax5hTeRe7ehVmz5ICJxERo316uAduihe4RsHF3Ezk06zLHFweRlpSBXfvytHNzpFqL0rlH
wKakErPybyJn/IXq5j2Mq9lgPbE/xb5sj4NzXa5evYqlAYwpL1G3bHHKNetI1d4jsHD4iDCvMaSF
BlN1njcAIiOdB3tW82DPaipP30mi7wmiNv+JhWMTygz/haSgC9ydPZFKUzdiWNya+ORw/r0yl6OB
C0lRxVO9zCe0c3SnVrm2Wpcj04b73Gcuc1nIQh7xiJa0xB132tAGifyTo6CgoJATSm3WLFCMOYV3
mbg4OaXJnDkQFQX168tGXZcuoJ9zudZsSYpL4+jCQP6dc4WEqBRs61vRzt0Rp8626OnnEgGrVhO3
9R8iPdeQfPEqsVbmjDe4RUD4nSd9jCRQCWjfvj3ubm5UurAT1BnYuMsReIm+J4lcPwuz6nUo2Xcc
ob8OxtCqDOXGej3x9gX0qEXpwT9g2b7Pk3lTVPEcD1rKP5dn8TD5PuWLO9HW0Q3nSj3Q19MxHDgL
4olnCUuYzWzucx8nnHDDjR70wID8k6OgoKCQFQWdmuQ74DDwnxAiI7f+bwuKMafwPpCaCmvWyFuw
ISFQpYqc1mTAADAx0W3O9NQMTq++xkEvf6JDHlGySmHauDrSaEBVDE1yj4BN+OccEZ5reORzhrOm
KtZbpXEq7PpLfddP+RansDNUnrELdWI8d7xGY2hVlvITZvHorA9xPpso2Ws0hep9AoAq8i4BPe2o
uea/587gPSZDreLs9b/w8Z9O+MMgiheypbXDBJpUH4Sxoblui5EFaaSxjnV44cVVrlKRioxnPIMZ
jBk6hh0rKCgo5EJBR7N2QDbm4iRJOihJ0neSJDWWJEn5qqqgUMCYmMCwYRAcDFu2yLVfhw+XI2D/
+AMePsz7nIYmBjQbXotfg3sybEtrzIoZs274cSZX2MC+qZdIfpiW7VhJkijcuiHVDs6n1sV1dPji
M+beLcoafTs62NZ6sv1pZmZG61GTMHdoxJXOVbj9v+HoFStJ2W//wKCIJSnX/dAvVAxzh0ZP5o7e
tojCDVqjX6holrIN9I1oUmMQP/a4wsi2uyhqVpZNp8YweX0F/r7wC4mpcjhwqVLylrRUyhdpclEk
a38kSW7XhqDwICZMm8CGyA3sZCelKc0YxlCBCvzCL8SgQ9hxNoQnhNN8VXMiEiPybc63Ad9wX4pO
K4p/pH+exr3O9XhfZenKu6CjQjYIIbS6AFOgNXLy4ONACpAAeGs7x+u+nJ2dhYLC+4ZGI8S//wrR
rp0QIISFhRATJghx586rzKkRVw/fE7Pb7RXDWCxGW6wQW1xOi9g7CVqNTw25I0JHThMXTBuL7diJ
3ra1xbgvBz65n5EQL2b94C5KW5cUU6dOFXFxcSJ4ZBtxZ677kz5pEXdE4IAGImrrIqFWpWmt+/Xw
4+LP/Z+KYYsRo5aZig0nRgs5hEQIRtgJfkL+N7NNG+zm2wl+RtjNt3vSdlwcF51EJ4FAmAkzMUaM
EbfELa31zI4Re0YIvV/0xMg9I195rreJrNZQG17neryvsnTlXdDxfQc4L3Swd/J8Zk6SJGugJdAJ
6AlkCCHeyn0HZZtV4X3H11dOQLxpk5zu5Msv5S3YWrV0n/OObwwHvfw5vykESU+iwZdVaOfmSOma
xXIdmx4dR/S8zUTN24w6Nh6Lj52wdv8K45bOVKpcmYgI+Ru/hYU5i1tWw7l5K6pP8ALg5uReaFJT
KO8yG+NylfKs9/24QA76eXLuxnoWDlWBtS98Uwck5PCthX4QVZvcPvJyK7EVQACeeLKe9QgEvemN
K6444phnnd/Xck26lil7nevxvsrSlXdBxw+BAt1mlSSppyRJCyRJCgJuAkOB60AbIPdPeAUFhQLB
yUlOZXL9OnzzjWzU2dnB55/LOex0obxTCQava8lv13vRdHhNzm8K4edaW5j/+QFunMx5+8XQqhhl
fhmOQ+jflJvtgiosgpDPxnPAoQtSWvqTfomJSXj+c4n7a6azs3kZLg1vQ9LlM5QbN10nQw6gTLFa
DGyxiv/1vik3dH0hKW837ZLxvpjM98UkvnbYsZrV3OIWYxnLTnbihBMd6MBhDiOyD/x/iWcTw75P
CWFzW8PseJ3r8b7K0pV3QUeF7NE2AEIDRAPTgflCiOSCViw/UDxzCh8aMTEwfz7Mmyf/3LixHAH7
2Wey504XEmNSOTzvCofnBZD0II3Kja1p5+6Iw6cV0NPLOW2HSM8gdrMPkR6reXT5Gj5FM1hr/IDr
kfcBMNGD3iXhTiq4/rmMdv0GIzQaJF2VzUQq9YxX7okywEI/1OF26OllHQ6sS4mtOOJYyEJmM5to
oqlPfdxxpzOd0Sf7sOP3tVyTrmXKXud6vK+ydOVd0PFDoaADIIYBB4HRwH1Jkv6WJMlFkqS6kpbJ
niRJWiFJUpQkSVlWkZYkyVWSJN/M64okSWpJkiwz792WJOly5j3FOlNQyIYSJeCnnyA0FObOhfv3
oXNnsLeHFSvk2rB5xaKECZ/9XI8/QvvSa05jHt5LYsEXB/nVfgsnVwaToVJnO1YyNKD4lx2o6beB
mvv+pKfjR6yLLMVsc3vql6tEqgZWRcAVY2uad/9SHqOnR3JyMhqNJtt5c+VFr9xjuvXlx83VORa4
mPSMl8uc6VJiqxjF+I7vCCWURSwilli6050a1GAJS0gl63Jq72u5Jl3LlL3O9XhfZenKu6CjQs5o
ZcwJIZYJIfoLIWwAZ2AnUB84DVqHda0C2ucgw0sI4SSEcAImA0eFELHPdPkk837+poBXUHgPMTOD
0aPl7dd16+SasIMHQ6VK8hm7R4/yPqexuSEtx9jz243eDF7XEn0jfdYMOsqUShvxmeFPyiNVtmMl
SaJIhyZUP7KEWmdW82m79iy8Z8lyQzta29ZkVP+BmDyTZ2XKlCk4ODiwatUqVKrs580WyxBeyvUr
ye1mxsVYd+IbJm+owL5LU0lOexoO/ColtkwxZTjDCSaYLWyhCEUYznAqUIE/+IOHPB92/L6Wa9J1
DV/neryvsnTlXdBRIWe0DoCQJEkP2YBrgRwA0QQwAi4IIRrlMPTZOWyBPUII+1z6rQcOCyGWbwyb
NQAAIABJREFUZr6+DdQTQuQpH4CyzaqgICME+PjAtGlw+DAUKQIjRsh1YEuX1nVOQeDBu3h7+BF8
+D6mRYxoPqIWLcfYU6R07jFRqddCiZzxFw9W70WjSqdYt5aUcv+KtEqlsLGxISkpCYCyZcsyfvx4
hg4dSuHCr145UAjBtfAjHPD1IPCuN8aGFjStMYzWDuMpZlHuled/IgfBEY7ggQfeeGOBBcMYxgQm
UJay+SZHQUHh/aGgkwbvBxojpye5ABzJvE4IIZLyoKQtuRhzkiSZAXeBKo89c5Ik3QLiATWwWAix
RBt5ijGnoPAyFy7IRt327WBgAAMHgosLVHs5R6/W3D4fjbeHL5e23ULfSJ9GX1WljUttrKtlnS/u
WdIjYoias5HohVtRxydy2ak0o4P/JTHl+aO5RYoUYcSIEYwdO5ZS2iaMy4U7Mb4c9J/O+ZCNSJIe
Dar0pa2jG2WKvUI4cBb44osXXmxiE3ro8SVf4oortchfOQoKCu82BW3M/YEOxlsW89iSuzHXC+gn
hPjsmbayQoh7kiSVBHyA0UKIY9mMH4Z8xg8bGxvn0NBQXdVVUHivCQmRt1xXrQKVCrp2lYMlGjTQ
fc6oG/H4TPfn1KprqFVqnLrY0s7NiYoNS+Y6Vv0okeglO4iatZ7Y++HsKgXrU8KIio97rp+RkRFn
z57Fyckpy3mEWk3kupkU//QrDC1zlwsQk3CbQ/4zORm8HFVGMg42n9LeyZ0qpT7Wary23OIWs5jF
MpaRQgqf8imTmEQTmuSrHAUFhXeTd6I2q5bG3A5gixBifTb3fwYShRDTc5OneOYUFHInMlIOlliw
QK4m0bw5uLtD+/ZyFQVdeBSZzL9zr3BkfiAp8SqqNS9NO3dH7NqXf1IhIjs0qnRi1+0n0mst8UEh
eBdX85deFDej5bQoNWrUICAgAL3MiNe0tDSMjY2fjE/0O0XwkI+RjIwp8fkgrL900TrdSWJqDIev
zONwwDyS0h5Q2boxbR3dqF3hM/SkV4uwfZYYYpiX+d8DHtCYxrjhxmd8hp7WcWkKCgrvG++FMSdJ
UhHgFlD+sQdQkiRzQE8IkZD5sw/wqxDiQG7yFGNOQUF7EhJg2TKYMQPu3QMHB9lT16sXGBrqNmdq
gorjS69yaOZlHt5LolxtS9q6OVKvZ2X0DXM2WoRGQ/ye43IN2JO+HLdQsa5IIiNcXRg69tsn/fr2
7Ut4eDju7u60a9cOSZJIvR1MxFovYvetRagzKNaqB9YDXDGv6ayV3mnpSZwMXsGhyzN5kHCb0kVr
0rq2Cw2r9sNQ3zj3CbQkmWSWs5yZzOQ2t6lFLVxwoR/9MMIo3+QoKCi8G7z1xpwkSRuQgydKAJHA
T4AhgBBiUWafgUB7IUTvZ8ZVAnZkvjQA1gsh/qeNTMWYU1DIOyoVbNgAnp4QGAg2NvKZusGDwfyZ
WvbhCeH03tabTd035ZqLKkOl5r8NIXh7+hEeGIeljQVtXGrTZHB1jM1ztxQTT/oS4bGah38fAxNj
Sg7pjLVLP+6LNKpUqfIkjUnt2rVxc3OjV69eGBgYoIq+T9SGOURvW4Qm6RGFGrSm1AA3CjVsnauH
EECtyeDCzS0c9PPkzgNfipqVoZXDeJrWHIapkRyMUaqU7N18EWtriNCyxGUGGWxmM5544ocfZSnL
OMYxjGEU5tWDPhQUFN4N3npj7k2gGHMKCrqj0cC+feDhASdOgKUljBolpzyxsoKRe0ey+MJivnH+
hvmd5ms5p+DKvjC8Pfy4cSICc0tjWnxrxyff2lHIyjTX8SmBN4n0WsuDv/aBgMP1rZn03z7U6udz
3VWoUIEJEyYwePBgzM3NUSfGE71tMVEbZpMeE45ZjbpYD3CjWMtuSAYGucoVQhB0z4cDvtMIvn8Y
U6MiNK81gpb2Yyhqnn04cF4/XgWCgxzEAw8Oc5giFGEkIxnNaEqjY9ixgoLCO4NizGWBYswpKOQP
p07JwRI7d4KpKfQcHM5G60qkqXWv4xhyKgJvTz/8doViaKpPk0HVaeNSmxIVc/dEqe5GEjV7A9GL
t3MvMY6tNvpsiQomOfX5BL3Fixfn8uXLlM7Mv6JRpRG77y8i1nqRFhqMUdlKWPdzocRnA9Ez0a7E
9O3o8xz08+TirW3oSwYsGJp9JuZX+Xg9z3k88GAb2zDCiK/4ChdcqMYrhB0rKCi81SjGXBYoxpyC
Qv4SFATTp8PKqJEIp+VgoMJQMmKo8xCtvXMvEh4Uh890f86svY5GLajXsxJt3RyxqVMi17EZcY+I
XriVqLmbiImMZFcZWJ9wmwcJ8QA0bdqUY8eeBr6r1Wr09fXl83jHdhOx2oOky2cwKFqCkr3HYNV9
JAZFi2uld1T8DXz8p9Ov2aJs++THx+sNbjCd6axiFSpUdKUrrrjSkIavPrmCgsJbRb4bc5IkJYB2
FaOFEG/loQ7FmFNQyH/CE8KpOEf2yj1GT23K+oY36dmxlM4RsHH3kvhn9mWOLw4iNSGdmm3K0s7d
iRoty+QeAZuaxoM1e+UI2Buh7LdSs1YTwbyli/msS+cn/dq2bUuJEiVwc3PDyckJIQSJvieIXO1B
/Im96JmYUaLLUEr2HY9x6Qpa6Z2Tavn5XTmSSOYyl/nMJ554mtMcd9xpT3ukl8pdKCgovIsUhDH3
lbaTCCFW51Xw60Ax5hQU8p+Re0ey/NLy58v/ZBjBxSE4R87H1RW6dZMTEutC8sM0ji0K4p85l3kU
kYKNcwnauTlSt1tF9PRziYBVq3m44zARHmt4dD4AYytLSrkNoNTE/vz33380eCaJXtu2bXF3d+eT
Tz5BkiRSblwmYo0Xsd4bAIFl2z5YD3DFrGr2xeEhZ2Pu9LW/qF+5F/p6OoYDZ0ECCSxlKTOZyT3u
4YAD7rjTk54Ykn9yFBQUXj/KNmsWKMacgkL+U2dxHXwjfF9qL2/ghNnaSwQHyzVgXVzg66/lM3a6
kJ6awZm11/GZ7k/ktXisKhemjUttGg2shpFpzpaiEILEIxeI8FyDYVkrbJf9wO+//84PP/zwUl9n
Z2fc3d3p2rUr+vr6qCLCiFw/m5gdS9CkJFG4cXtKfTUJi7rNsvQQZhfNal4khi89rShmXp42tV34
uMYQjA3NX+6oIypUbGADnngSSCA22OCCC4MZjDn5J0dBQeH1oRhzWaAYcwoKrxeNBnbtksuFnTsn
R72OHg0jR0Jx7Y6iZTGnwHfnbbw9fLl9LppCViZ8MsaeFiNrYW5pkut4kZHxJGL1woULeHp6snXr
1ifpTB5TrVo1fH19Mc20PjPiY4nesoCoTXPJiIvGzK4BpQa4UbRFZyR9/dz1FhquhO3D28+TGxHH
MTe2pIXdKD6xG00hUysdViIbOWjYxz488eQ4x7HEkm/5ltGMpgS5nztUUFB4eyjocl5GwBSgD2AD
z/vyhRC5f7K9ARRjTkHhzSAEHD8upzXZt0/OTzd0KIwfL+et021OwfVj4Xh7+HFl/x2MzQ34eFhN
Wo9zwNLGIk9zhYSEMGPGDFauXElqZgRs9+7d2bJly3PyJElCk5rCgz2riFg7HdW9mxjbVMW630SK
dxqAnnHuxiRASORpvH098AvdhaG+CY2rD6JNbResCmtXmUJbTnEKL7zYyU5MMeVrvsYFFyqRv3IU
FBQKhoI25jyAXsAfwCzge8AW6A38IIRYnFfBrwPFmFNQePNcuSInIN6wQX7dpw+4usoVJnTl3uVY
vD19+W9DCEjQoE8V2ro5UtbeMk/zREVF8eeffzJ//ny8vb2pX78+ABqNhsaNG9O4cWPGjx9P+fLl
EWo1cf9uI2K1JylXL2BQvBTWfcZi1X0E+hZFtJIXHheEj/8Mzlxfg0aoca7Yg3ZO7tiUqJPnNciJ
IIKYznT+4i8yyKAHPXDHnTrkrxwFBYX8paCNuVvACCHEgcwoVychRIgkSSOAVkKI7nlXueBRjDkF
hbeHsDCYOVMuGZaUBB07yjVgmzbVvQZsbFgiPjP9ObH0KqrkDBw62dDWzZGqTUtpVeHhMSkpKU+2
VwH27NnDZ599BoCBgQF9+/bF1dUVe3t70h88JGbtOqIXryc9/hZSlURKdhtOyb7jMbIqo5W8h0n3
+efybI4FLSY1/RE1y7ahnaMbNcq2ypPeuXGPe8xhDotZzCMe0YY2uOFGK1opEbAKCm8hBW3MJQM1
hBBhkiSFA58KIS5IklQR8FNSkygofDi8avmq2FhYsADmzIGYGGjYUDbqvvgC9LIIVtVGXlJsKkfm
B/Lv3CskxqRS8aOStHNzxPELW/T08m60DBo0iJUrV77U3qlTJ354ZEVhlaBwy/o88jmJKuYOGcXO
IBnrYdmhH9b9J2JasWauMrJ7LssSKURFGqKvp2M4cBbEE89CFjKHOUQQgTPOuOJKd7qjz1t5Sua1
kJeSdAoKrwNdjbmc4/yfEgY8/sp5A2iX+XMjICWvQhUUFN5dsjJAcmp/EUtL+P57CA2F+fMhKgq6
doWaNWWvXdoLBRW0kWduaUKnH+ryR2hf+sxvQkJkCou6+vBzzc2cWHaV9DR11pNkw/Lly9mzZw/N
mjV7/sbe02Qc9+M7wzDK/G8kNf9bj4F5aWwn76BE5yHEem8gsEctbrh0JtHvVI4ysnuu2BhTftxU
naOBC1Fl5M/HaxGKMIlJ3OY2S1hCAgn0pjfVqc5CFpLygX6M/3bsN06EneC3o7+9aVUUFF4JbY25
HUCrzJ/nAL9kbr2uApYVgF4KCgrvOWZmcpTrtWuwcePTIAlbWzlwIj4+73MamRnQYqQdv17rxZCN
rTAyN2Dt0GNMqbiBAx6+pMSrcp8EkCSJTp06cfToUU6fPk2XLl0oigE9KckywinnZIckSaSHx6Bn
boqRdRls3OfjsCeU0kN/JNH3OMGDmxA8pCkPj/2NeCFyNjcsTEqw/sRIvltfgb0XfycpNTbvi5EF
xhgzlKEEEcQ2tlGc4oxkJBWowO/8Tiz5I+ddIDwhnJW+K9EIDSt9VxKRqIVbWUHhLUWn1CSSJDUE
mgDXhBB78l2rfELZZlVQyH8KquKBEPDPP3KwhI8PFCoEw4fL5cN0lSeEIOjQPQ56+hF06B4mhQ1p
NrwmrcY5ULRM3nKxBcxZQ+ykBbSXLhMQGICtrS2PDp0lYvZ6pgafpNbQngwfPpwiRYqgTkniwa7l
RKydQXpkGCaVamHd3xXL9n3RMzQCcl5HjUZwPeI43r4eXLmzD2MDcz6uMZTWtcdjaaFjOHAWCATH
OIYHHuxnP+aYM4xhjGMcNuSfnLeRZ5NfG+kbMaSO7iXpFBTyi4I+M9cMOCWEyHih3QBoLIQ4lvXI
N8uHbMy1aAH29jBvXsHKsbWFb7+FiRNfbZ4jR+CTTyA6GkpomRpr1SpZdmLiq8lWyBuvo3zVxYvg
5QWbN8u56/JDXtjFGLw9fbmw5Rb6BhIN+1WlrasjpWoU1Wr89U5jMa5YhqJTR1C4cGHUCUlEL9pG
0KrtdAr8mxQ0FC5cmG+++YaxY8ZQpmxZREY60dvXEDHjT9LT/TEsVQbrvuMp0WUYBhaFtHque7GX
8fb15L+QDYBEgyp9aOvoSlnLVwgHzoIrXMEDDzawAQmJPvTBFVccyF85bwPhCeFUmluJ1IynJelM
DUy5OfamcnZO4Y1S0MacGigthIh6ob04EPWh5pkbOBBWr4Zff4VnE8vrYphoa3wNHCgfGt+Tiz80
NhYMDWXvRl4ZMwb274fr11++FxcHZcrIh9eHDZOf0dxc3jJ7FVQqWWdra+0jG1NSICEBSpZ8NdkK
eeN11SIFuHkTKlfOX3nRIY/wmeHPqZXBZKSpqf15Bdq5O1G5kXW2YzRpKm4P+AmzutUp5T4QgPh9
J4hesJU1wf/x241TSDwtZm1kZMSAAQMYa1OXQvfiiFmyg8Jf1EdTMojEC0fQtyhCnaMP8/RcsYlh
HPKfxfGrS1BlJGNfviPtHN2oWjrryhS6EkYYM5nJUpaSTDId6Yg77jSl6XsTAZtVSTrFO6fwNlDQ
ARDPfk49S3EgKa9C3ydMTGQPQnT0m9ZERpX52WRpqZshBzB4MNy4AUePvnxv3TrQ15dzhYGc4T8n
Q06l3REljIzk6L68/D/J1FQx5N4E1tnYPNm1vwqVKmU/b9GiOXvtssOqcmH6LviYqaF96TClDteP
ReDZeBfTm/+N/55QNJqXP+r0jI0o1LoBj7zPoFGlk3DkPJEz12NYriSTzuxh+fLlVK9W/Un/mipD
9Jft5cyPc9h87SLo62Ez63uqLz5MjVVnMa3QlDL6t7PUL7vntbSwoWfjWUzre4fP6/3G7ehzzNjT
gmk7P+LSrR1oNHkL8sgOG2yYzWzCCOM3fuMc52hOcxrRiJ3sRIMOi/6Wcfru6edrCwMqtYpTd3MO
WlFQeGsRQmR7AbszLzXg/czr3cBeIBQ4kNMcb/JydnYWBclXXwnRoYMQDg5CjB79tP3wYSFAiOjo
p21HjwrRoIEQxsZClCwpxLhxQqSlPZ1H/i7+9Lp1K3uZnTq9/HraNCHKlhXCykpub95ciFGjnvbb
tk3W08REiGLFhGjWTIiIiOyfrV49IQYMeLndyUmIr79++rpCBSG8vJ6+BiHmzROiSxchzMyEcHGR
2/fsEaJaNfn5mzcXYuPG55/zxTVbuVIIc3MhDh0Sws5OnqtFCyFu3nwq63GfZ9m7V15nExMhLC2F
+PRTIVJS5Htr18rPZWEhr1P37kLcvZv9Gii8fSQkCDF7thA2NvL7xc5OiFWrnv4t6UJKgkr4zPIX
k2zWiWEsFj/bbxanVgWLDJX6uX7pMXEipIe7uFi4mbj68WARNm66UEXECCGEUKekCrVaLXZs3SbG
VWog1lJDdKOEKIqB2F6vq7jW4ekHRMajRBHg0EtcNG8irjRoL87XNxXn60nihlt3kRjwn9Z6p6Un
iSMBC8R36yuJYYsR32+sKo4HLRWqjFTdFyMLkkSSWCAWiEqikkAgqolqYplYJlJF/spRUFAQAjgv
dLB3cvPMPci8JCDumdcPgLvAIqBffhuY7xJ6enIdykWLICQk6z737kGHDlCnDly6BMuXy9nwJ0+W
78+ZA40ayUXJw8Plq3x57XU4ehT8/eHAAfkA+YtEREDv3vDVVxAUBMeOQf/+Oc85eDBs3QqPHj1t
u3gRfH3leznxyy9yQtjLl2HUKDlZbNeu0KkT+PnJ59zc3HJ/rrQ0+OMPWLECTp+Ghw/hm2+y73/g
AHz+ObRpAxcuyOvyySdPvTcqlaybn5+8TR0T89TDqPBuYGEBY8fKnuO1a+W/v4ED5a3YmTPlbfe8
YmJhSOtxDvx+ozdfr2kBwKqBR5hSeQOHZvmTmiB7cAyKF6XS5mnYBW2l4saplJ/lgkHxIqgfJaJn
Yoyenh7Op0IZJKyx3eJB2qcfUd60MDYX71B+5gQA4uLimOLwCeEW+pRb+j2mtk5IAXUwt+xGwlkf
rg6oz7VvWhJ/6sDjL9TZYmRgRvNaI/i1VzBDW23CxLAQa48N5bv1thzw9SBFpUM4cBaYYcYIRhBM
MBvZiAUWDGEIttgyjWnEkz9yFBQUXgFtLD7gJ8BcF2vxTV6vwzP32EvWooUQvXrJP7/oZfruOyGq
VBFC/cwX/ZUrhTAyEiIpSX79oidNG5mPX5coIUTqC1+Sn53vwgVZn9u3tX+2+HjZG7Z48dO2kSOF
qFHj+X5Zeea+/fb5PpMmvTzuf//L3TMHQly9+nTMX3/Ja6bRPO3zrGeuceOnvwNtCAqSZdy5o/0Y
hbcLjUaIffvk9zsIUbSoEFOm5Ox1zn1Ojbi8L1RMb75bDGOxGFdsldgx5ZyIj0h6qW/cjsPCv9Ln
QqNKF0IIEb1sh/C3/Uxc/XiweHjglAjsMkHc6DrxSf+pP/0iVlNDuFJelC9fXsycOVM88A8WcbuO
iIyEeHF/tafw61BWnHdGBPRxFA/2rxOa9HSt9Q684yNm7Wkjhi1GjFlRSGw97SriEu/pvhhZyREa
cVAcFG1EG4FAFBaFxUQxUdwT+StHQeFDhALyzD02+H4RQiRJklRPkqRekiSZA0iSZJ4Z0frB4+EB
W7bIHqEXCQqCjz56Prv9xx/LnqIbN15dtr09GBtnf9/REVq3lvt16wYLFz494xcWJns7Hl9Tp8rt
hQtDjx6yVwwgNRXWr8/dKwdQ74Wjm1evQmbJyyc0bJj7PMbGUP3pMSTKlJHXLC4u6/6XLkGrVlnf
A9mz+MUXUKGCfJ7wsZ5hYbnrovB2Ikmy1/vIETh7VvbETp0q/45HjNDt70uSJOw72OBy5DMmnelM
tRalOTD1EpMrbGDdiONEhzx1Vxft3IJavuuRDOWPwRKDO2MXsJliPVsTNmIaybuOY9FUroeq0WjY
vfIv/iOBFhTF5Y4xsydMpkrzj5jx3yEeJKdSeoAr1Zecp+Tnv6BJVHHr+y+50qUKURv/RJ2S8/Fk
SZKoWa414zodZErXCzjYdMLn8gy+22DLmqODiXh4Ne+LkZUcJNrQhoMc5Dzn6UhHZjKTilRkMIO5
Sv7IUVBQ0B6tjDlJkqwlSToDnAPWA4+P6M4EZmg5xwpJkqIkSbqSzf0WkiTFS5Lkm3n9+My99pIk
BUuSdEOSpEnayHvdNGggG0rabB8+S34EoZnnki5LXx8OHpSv2rXlbd6qVeXtxjJl5K3Tx9ez25iD
B8v/gwwMhO3b5XqaX3316vpoi8ELXxMer5Uuh96TkqBdOzlYY+1a+O8/eVsWtA/SUHi7adBAfp9e
vQoDBshfRKpVg549s/6SpQ0VG5ZkxPa2/BzUk48GVOXUimB+qLaJJT0PEXpB/kakX+jpG14IgZ6Z
CSVH98bMqRrGVcuTeOwSabfuoaenx95LZyj1+wgGWkUQiYrOlCA+Lo7ff/+dKja2LB04huAGA0k5
Go7KpxhFa47FoERZ7kwfw+VPK3B/8c9kPIzJVW+bEnUZ0moDv/W6TtMawzh3YwM/b67FAu/OhETk
3yF/Z5zZwAaucY3BDGY966lFLbrQhTOcyTc5CgoKOaNtNOssIBI5ejX5mfYtQFst51gFtM+lz3Eh
hFPm9SuAJEn6wHygA1AL6CNJUi0tZb5Wpk6F48efGgmPqVkTzpx53gg5cUKO4HycdsHICNT5E4yW
JZIkn8v76SfZkClTBjZtkg2mKlWeXpaWT8c0bSp7xpYvl6/PP5ejV/NKjRrwYoaYc+de7Xmyok6d
rM8Mgvw/+JgY+XfUrJmsU1RU1n3fNI+jel+8Sr0l6a+y0u3xlRO6Pldex1WrBkuWwO3bcs1Xb2/Z
C9uypfyFJqejaPr6WcsqW6so/Zc0Y+rtvrRzcyTA+w5T6+1gZqs9BB68ixCC8IRwWqxuQURiBOkR
MTzcdZQqe2ZTebsXhmWsEGo1lpaWTB7vQmhoKLUmfE13yRpLDAFokmZKlf/CKDG0C9X+WUj1E8vI
uJtClWm7qb7sOBaOTQhf+gv+nWwI8xxN2r1bOS8cYFW4En0+nscffUPpWPd7bkQcx3N3E7x2N8M/
dA8akT+RqZWpzAIWEEooU5jCMY7RiEY0pzl72IPIMhmCgoJCfqGtMdcKmCKEeHGDKwS0SxMu5MTC
utSKaQDcEELcFEKogI3AFzrMU+BUqSLnXpsz5/n2kSPh/n3536Ag2LsXJk2SAwEep/WwtZUNnNu3
ZaNDF+9Tdpw5A7//LhtxYWGwezfcuQO1tDCJBw2SPRyHD2u3xZoV33wjB4dMnAjBwbL3ZPFi+V4+
psdiyhR5q/v772VvYkAAzJoFyclgYyNv286bJ+cu27v3+dyAbxOvWvv0bUXX59J1XOnScgDNnTty
+qDgYNk7W6eOHICUkfHymOz+7h63Fylt9n/2zjs8quJtw/fZTa+EVFog9JpQFBGQDgELVUBEQEAQ
pBuSYNfPSoI0ARERIVRRFASR0DvSJCGU0EISCKT3nt2d74/DL4osZF1Dn5trr4s9OzPv7FnCPpmZ
533p83lLvrgymL4hT5EUnckc/8182vxnxn83tbTOp6WXG00zdmJTW3Uy6ZLSyVi7DQCNnQ22trY8
27I1nt1a02pKB7w8rGhvWRGfLm2o9P5rAKS42hJzNIKDc5Zg79eG2jM30HDtaSp2G0jqz99wqm8d
Yt55mfzzkXe+EYCjrTs9n/g/Pn85ngFPzyY9N4754S/w8U++HDq/DJ2+fJanPfDgYz4mnnhmMYtY
YnmBF/DFl2Usoxi5DC6R3A1MFXO2YPSn0B0oNHLdXForinJSUZTfFUVpdONaFeDK39pcvXHtgeT9
92/dHqxSRU3Ce+IENG2qCqRBg/46nwaq0LGyUgWWu3v5nuNydoYDB+D559Xt1YAAVci8YoIPedgw
dYuyalX1i9AcqleHdetUEennpwqs929sotvYmDemMZ59Fn75Rb3XzZpB+/aqCNVo1Hu6bBmsX6/e
448+Ut2PkkcfJyf15ysmRv3FpKgIXn5Z/VmYN08V+/8WWycr/AP9+CRmEEO/a0c6qWxI/RGDMLD4
2HfEJ19F6+RQ2r7w4hWuTJzB5SHvUXg+juytf5A0YwWiSVV2VdhHi6cdsPABxd8PRavmYF/4f59j
l1fM0M/fo0WLFqxZswZL77rU+OB7Gm+IwXPQZLL2beTsy025MKE72Ud3lumAtba0p3OTSXzy0kWG
d1yOomhYuvtV3l1Tm20nZ1JYbIYd2Aj22DOZyVzkImGEAfAqr1KLWsxiFjmUTxyJRKJiagWITcBJ
IcTbiqLkAL5APLAW0AshBpgUTFFqAJuEEI2NvOYEGIQQuYqiPAvMEULUURTlRaC7EOK1G+2GAE8J
IcbfJsZoYDSAt7d3i7i4OFOmJrnHzJmjCrrMzPJdnXsUuJcVFszB3Pnd6363w2CAjRvVGrAHD4Kr
K0yYoK6U36liy51ijd00lu+Of0cJJWh0Wpqcac/HviF0HN8IB1f1NxZdWiYJ0+aRveMIw2h3AAAg
AElEQVQoNvWrY+nlymz/BL6+sIzXtrrhnmdN+rv+zO3zNfn5+bzj0pjKxQqfE08G6jKij48PAQEB
DB8+HDs7O3Q5maT89DXJa+agS0vCruETeA0NokLHvqWi8E4IITh9ZQvhkdM5f30PdlYVaN9oHJ0a
TcDJrvyyQAsEW9jCF3zBXvZSgQqMv/HHk7uQbVoieUi52+W8GgJ7gAigPbAJaAQ4A22EELfJsHbL
ODW4jZgz0jYWeAKoA3wohPC/cf0tACHE52WN8TjXZn3QmD9fdbS6u6vbvhMmwODBt25JS6SYK69+
prBvn7oFu3GjeuThTqt0t4tlrM6npcGKgTM/oYLBlTYj69HlTV/caqglWfR5BYjiEpK1udT6qhaF
ukLmhdUhulI+3/VIJ2ZSDBUzFc48P4l9Lgbe+WMTOYUFN8V0c3Nj5syZDLmRMNJQVEjab2EkLQ+l
6MpFrKvVxnNwAK7PD0NjY2vSvbicfITwiOlExP6CVmtF67rD6eobgIdzbZP6m8oRjvAFX7Ce9Vhh
xXCGM5Wp1OIOddskkseEu1rOSwhxBnU17hCwFbBBNT80M1XIlYWiKF7KjQKDiqK0vDG3NOAoUEdR
FB9FUayAl1ArUEgeIi5ehD59VDPIe++p5+hCQ+/3rCSPO888o27/nzqlpuIxh4/3fnyLkUCxBO2C
aFoMqMmer8/wXu01fDd4J1ci09Da22Lh4sQn+z5R+wmIdSukwEqPXuj5eM/HXA2YjYN3JUZ/N5OY
K/F88MEHVPybOyk1NZUKFSqUPtdY2+DedzSNfoqm5vSf0Dq6EP/FWKJ61uD6d5+iy75NPp+/4ePR
kjHd1vHRgGha1RnKwXNLeP+HunyzrT+xKeX3S3FLWvIzPxNNNEMYwhKWUJe6DGAAxzHTdiyRPOaY
tDJXLoEUZTXQAXBDdcZ+AKqNSwixUFGU8cBYQAcUAG8KIQ7e6PssMBvQAkuEEJ+aElOuzEkeRry8
jB/u9/RUq3ncb8xdKTP3fd3L+6HRGH8PGs3t3ebNvmlGRGLELdebejXlxOsnSL+Sy47ZUexbFE1R
bgmNulfDP8iPl849R0SS2s8vzp6Zq2sTXSkfS2dHWqVXos62+djUrV46Xl5eHkuWLOHLL7/E3t6e
qKgoNDeSVx4/fpxZs2YRFBSEr68vQghyj+8hMWw62Qe3oLFzwK33KDwHv4mVZ1WT7kVW/nV2nvqK
PWcWUFCcRb3KnfD3C6Jh1W4o5Xg24jrXmctcFrCAbLLpRCemMY0udEFBnsGQPF7clW1WRVHsgBCg
N2ANbAMmCiHKTnT0ACDFnEQiMYeMDFiwAObOVVPYPPmkmkOyTx81fYk55GUUsefrM+ycc4qc5AJq
POlOtyA/mvWpgUarQZ9XQPLcNdjUqYZd8/pY16yKMBhQNDdvoJSUlHD16lV8fHxKrw0cOJC1a9cC
0L17d4KDg2nfvj2KopB/4SRJYSGkb10DKLj2GIzn0CBsa5qW4amgOJt9ZxexI2oWmfnXqOrqh79f
MC1q9kerKb+c8Vlk8S3fMotZXOMaTWlKEEH0pz8WyNz0kseDuyXmQoE3gBVAEfAysEsIYeaGxL1F
ijmJRPJfKCxUXdChoWp6nf+5wYcOBVvTjqLdQkmhjkPLzrM19CQpl7LxqONM16m+PD20DpY2/160
JCQk4O3tjeEfeVWefPJJgoOD6d27N1qtlqJrsSSvmkXq+sUYCvNxfuZ5vIYF49C0rWnz1hdx5OIq
tkWGcj3zLK6ONejS5E3a1h+JlYXdv5737SiiiJWsJJRQoommBjUIIIARjMCO8osjkTyI3C0xdwk1
v9yaG89bAgcAGyHEXUxxWz5IMSeRSMoDvV5NezN9upoA28MDJk9Wz366uJg3pkFv4MTPsYSHRBJ3
LAUnT1s6TWpM+7ENsatwh/p8Rjh69CghISGsW7fulvQkderUYcGCBXTp0gUAXWYqyT8uIHnNXPRZ
adj7Po3X0GCc271wyyqg0XkLAyfjNrI1MpRLSQewt3alY6PxdGw8AQcb13817zvGwcCv/EoIIRzi
EG64lTpgXSm/OBLJg8TdEnPFgI8QIuFv1wqAukKIK7ft+IAgxZxEIilPhFDrwE6frlaWcHCA119X
hV1V046iGRlTcG7XNcKnR3Jm61WsHSx5ZnR9ukxpgktVh7IH+BsXLlxgxowZLFu2jKKiotLrR44c
4cl/FEg2FOaTumEJSSu/pPhaLDY16uM5JJCKPQajsTJNTF5M3E94RAgn4zdiZWFH63oj6OobgJtj
jX817zshEOxjH6GEsolN2GHHSEYSQADVqV72ABLJQ4S5Yg4hxG0fgB5w/8e1HFSBd8e+D8KjRYsW
QiL5O56eQqhfyTc/PD3v98zuDxqN8fuh0ZR/LHPvvTlzvBefc0SEEC+/LIRWK4SFhRDDhglx+vR/
GzP+RIpY/PIOMUa7SIy1/FZ8P2yXSDid/q/HuX79unjrrbeEs7Oz6NChw02vbd26VQQEBIirV68K
IYQwlJSItN9XidODmopjLRCR3SuL68tChC4ny+R4Cemnxfe7XhVjv7UUYxZpxeIdL4v41Ih/PW8h
hLiWfU20+76duJ5z/ZbXokSUGCaGCUthKbRCKwaLwSJCmBdHInkQAY4JM/ROWStzBlTTQ9HfLvdA
zTlXmpFJCNHzX6vIe4BcmZP8kwc9h9u95l7ej3uZZ+5evq/YWLWqybffQkGBWmll2jRo08b8MVNj
c9g+8yT7F0dTUqDH9wVv/IObUrvNvyvQm52ewdHek2g6cgAug/zRWFnSvn179u7di6WlJYMHDyYo
KIgGDRoghCDn8DYSw0LIObIDjb0T7i+OxXPQJCzdKpkULyP3KtujZrEvehFFJbk0rOqPv18Q9Sp3
NNkB+8Zvb/DN8W8Y02IM85+bb7TNVa4yi1ksYhG55NKd7gQSSEc6Sges5KHmbm2zfm/KIEKI4f82
8L1AijnJP5Fi7makmCs/UlPV5NhffQVpafD006qoe/55NbWJOeSmFrJr3il2zTtNXloRtVp74h/s
R5Pnq6PRlC1aimKvcannmxREXcSyqieJL7bCf/b7t7Tr2bMnQUFBtLmhQPPOHidp2XQydq5D0Vrg
+txQPF+Zik2NeibNO68ogz1nvmbnqTnkFCRTw/1JuvkF0axGHzSa29uB/56A2dbClphJMXg53F7A
ZpDBAhYwl7kkk8yTPEkQQfShD1rMtB1LJPeRu1oB4mFFijnJP5Fi7makmCt/8vLg++/hyy/VVbsG
DSAwUK14YmVl3phFeSUcWHKO7TOjSIvNoVKDCnQN9OOpwbWxsLqzaBFCkL3lIInTl5G95zgH7YtZ
5VLAkau35ntv06YN8+bNo2nTpmrcq5dIXD6DtI3fI0qKqdChN17DgrFv/JRJ8y7RFXLo/DK2ngwl
JfsSHk616eo7lafrDsPS4tbCzG/89gbfnfiOYn0xVlorXmv22m1X5/5OIYUsZSkzmMElLlGb2kxl
KsMYhg3lWABaIrnLSDFnBCnmJP9EirmbkWLu7qHTwY8/qjVgIyKgShXVKDF6NDg5mTemXmfg+NoY
wkMiuRqZRoXKdnSe0oRnRjfA1qlspZh3+BSJIcvI/GU3Jy0KWVVZx/a46NLXNRoNFy5coGbNmjf1
K0lLIvmHr0j5aQH67AwcmrfHa1gwTq27m7R9ajDoiYhdz5bIL4hLOYajrQedGk+ifcOx2FurdmBj
ZdFMWZ276f6g5xd+YTrTOcYxPPFkEpMYwxhcMNN2LJHcQ6SYM4IUc5J/8iB8yT9ISDF39xECtm5V
Rd3OneDsDGPHwqRJanUL88YUnNl6lfCQSM7tvIatsxXtxzak06TGOHuVnYut8HwcSTNWkBb2GzHF
OfxQXWHD1bP07dePNWvWlLb76aefiI2NZfTo0Tg5OaHPzyX1l29JWjWTkqSr2NRqjNfQICr6v4Ri
YWnSvM9f38OWiC84czUca0sHnqk/ms5NJvPuns9LV+X+x79ZnbspDoI97OFzPmcrW3HAgdd5nSlM
oQpV/tVYEsm9RIo5I0gxJ/knD3qprHuNVgv/yDUL3Ll8lbmYe+/NmeOD+jkfPaqKup9/BgsLGDYM
pk6FunXNHzP2aDLhIZGcWHcZraWGVsPq0i3QD886zmX2LUlMJXnOGlK+/onrWelYP92EFh+Mx6lb
K4QQNGrUiOjoaJydnXnjjTeYOHEiXl5eCF0J6VtWkxgWQmHMaSw9q+E5+E3cer+G1s60dCpX0iLZ
GhnCsUs/AAqbsxyJz7u1huz/yqKZSwQRhBLKGtagQcMrvEIQQTSggdljSiR3CynmjCDFnEQieRC5
eBFmzFCrSxQVQd++armwli3NHzPpQhbbvzzJwaXn0RfradbXh25Bfvi09Cizrz47l5RFv5A8axUl
11Kw9atLRJe6DP7yo5vaWVtbM2zYMKZOnUqdOnUQBgPZB38ncdl0ck/sQ+vkgnv/cXi8NBFLF3eT
5p2aE8uOqFnsj15MsS6fJt7P073pNGp7/Qc7sBFiiWUmM1nMYgoo4AVeYBrTaE3rco0jkfwXpJgz
ghRzEonkQSYpSa3/umABZGZChw6qWaJHjztvFd+J7KR8dsw5xd6vz5CfWUzdDpXwD/KjUfdqZZ5v
MxSXkL7yd5JCwsiKjiHcVc8KTTIxKTcvZyqKQt++fZk5cybe3t4A5J48RFJYCJm716NY2+DWcwSe
gwOwrlrTWKhbyC1MZffpBew8NZe8ojRqej6Nv18wvtVfQKOYaQc2QiqpzGc+X/EVaaTRmtZMYxrP
8Rwayi+ORGIOUswZQYo5iUTyMJCbC4sWwcyZkJAATZqoK3UDB4Jl2UfRjFKYU8y+RdFsnxVFZkIe
VX0r0jXQjycH1kJreWfRIgwGsjbuJTEkjOyDkexzKGalcy4nEmJL29jZ2REfH4+r682ltQpjo0lc
PoP0zcsReh0unfvjNSwIu/rNTZp3UUkeB899z7aoL0nLicWrQn26+QbyVJ1XsNCaaQc2Qh55LGEJ
M5lJLLE0oAGBBDKYwVhRfnEkkn+DFHNGkGJOIpE8TBQXw+rV6rm6M2fA2xsCAmDECLV0mDnoivUc
XX2J8JBIrp/JoKK3A10DfGkzsh7W9mUrxdz9EaoDduNeTlgVsaqSjt1x55g0aRKzZ88ubRcWFoZG
o2HgwIFYWlpSnHKN5NVzSFm3EENeNo4tu+A1NAjHp7qY5IDVG3Qcj1nL1shQrqRFUMGuMp2aTKZd
g9extTLTDmyEEkpYy1pCCSWSSCpTmSlM4XVexxHHcosjkZiCFHNGkGJOIpE8jBgM8Pvv8MUXsH8/
uLjAhAkwfjy4m3YUzciYgqjf4tkaEsnF/YnYV7Smw/hGdBzfCEd32zL7F5yJISl0Oekrf+e8Po8a
PTvh++E47PzqUlhYSI0aNUhKSsLb25uAgABGjhyJvb09+twsUtZ9Q/Lq2ZSkXse2XjO8hgbh0vlF
FAuLMuMKIThzdSvhkSGcu7YTWytn2jccS6fGk3C2M9MObCwOgnDCCSWUnezEGWfGMIbJTMaL8osj
kdwJKeaMIMXcveVBdRD+V8xNc2GuU9ScfubGMuczM/dzflT/fdxtDh2C6dNhwwawsYGRI9XVOh8f
88e8dCiJ8OkRRG6Iw9JWS5sR9ega4IubT9krXsVXk0ievZqUb37GkJuPk//TbGnkxMSZn93UrmLF
iowfP57x48fj7u6OobiI9M0rSFweSlHcOayq+OA5OAC3nsPR2JSdTgUgNvkoW0+G8ufldWg1lrSq
M5RuvlPxrPAf7MBGOMpRQgllHeuwxJKhDGUqU6lL+caRSP6JFHNGkGLu3vIg5fYqT+5lfjRz+z2q
sSR/cfas6oBdvlwV6P37Q3AwNGtm/pjXz2awbcZJ/lh+AYNe0KK/D/7BTfFu5lZmX11GNilf/0Ty
3B9ITUpiQ2VYlRNLWk7WTe1sbW0ZMWIEH3/8MS4uLup5vL2/krhsOnlRf2BRwQ2Plybi/uIbWFRw
vU20m0nOusi2kzM4dH4ZOn0RTWv0wb9pED4eplWmMJWLXGQGM1jKUooppi99CSSQpyjfOBLJ/5Bi
zghSzN1bHtUvaynm7l8sya0kJMCcObBwIeTkQJcuag3YTp3Md8BmJOSxc04UexeepTCnhAZdq+Af
3JT6nSqX7YAtLCJt2SaSZqwg62Icv7vrWS4SiU9NLm3j6elJbGwsNjZ/ldYSQpB7Yh9JYSFk7f8N
jY0dbn1G4fHyFKwrVTdp3tkFyeyMmsOeMwvIL86kbqUOdPMLpHG1HiadyzOVJJKYy1wWsIBMMulA
B4IIojvdUSi/OBKJFHNGkGLu3vKofllLMXf/YkluT2YmfPMNzJ6tblM3b646YPv1UxMSm0N+ZhF7
F55lx5woshML8G7hhn+QH837+aDRluGA1evJ/GWX6oA9eprdziWssMvi1PV4PvvsM956663StosW
LaJWrVp06tQJRVEouHiKxOWhpG9ZBQgqdhuE59BA7Or4mjTvwuIc9kV/y46oWWTkXaVKxSZ08w3k
ydovodWYaQc2Qg45fMu3zGQmCSTgiy+BBDKQgVhSfnEkjy9SzBlBirl7y6P6ZS3F3P2LJSmbwkJ1
63XGDDh/HmrWVM/UDR8OtmX7GoxSUqjjj+UX2DbjJEnns3Cr6Ui3qX48/WpdrGzvrBSFEOTuPk5i
SBhZWw5w1KaYZ0YMou60EVhV8yItLQ1vb2/y8/Np0aIFQUFB9OvXD61WS3FiPEkrZ5G6/lsMBXk4
te6B17BgHJq3M9EBW8KRi6vZGhnCtYzTuNhXo6tvAG3qj8TG0kw7sBGKKWY1qwkhhDOcwRtvAghg
JCOxx77c4kgePx54MacoyhLgeSBZCNHYyOuDgWBAAXKAsUKIyBuvxd64pgd0pr5RKebuLY/ql7UU
c/cvlsR09HrVJBESAocPq67XCRNg3DioWNG8MQ16AxEb4tgaEsnlw8k4utvQcWJjOrzREPuKNmX2
z488rzpg12wFBVwH9+A7h0w+mT/npnY1a9Zk6tSpvPrqq9ja2qLLSiflxwUk/zAXXUYK9o2fwnNo
EBXa90LRasuetzBw+srvbIn4gouJ+7GzdqFjo/F0bDQBR1sz7cDG4mBgM5uZznT2s5+KVGT8jT/u
lF8cyePDwyDm2gG5QNhtxFxr4KwQIkNRlB7Ah0KIp268Fgs8IYRI/TcxpZi7tzyqbkXpZv3vff5L
P8m/QwjYu1d1wP7+O9jbw6hRMGWKmrfOvDEFF/ZeJ3x6JKd+v4K1vQVtR9WnyxRfKnqXveJVFHuN
5FmrSF28nvj8LH6srmHd9XMUFhfd1M7Dw4OJEycydepUrK2tMRQWkLZpKYnLZ1CcEIO1dx08hwTi
+uwQNNZli0mAS0mHCI+YTmTcBiy1NrSuN4JuvlNxc/oPdmAjHOIQ05nOBjZggw0jGUkAAfhQvnEk
jzYPvJgDUBSlBrDJmJj7RzsX4JQQosqN57FIMSeRSCT/iqgodaVuzRr1+aBBarmwJk3MHzMhKp3w
kAiOrrkEQMtBtekW5EeVxmUv/+lSM0mev5bkr34gJS2Vn6sqrMmMITM3p7RNgwYNOHXqFBrNX2f0
hE5Hxq6fSQoLIf/scSxcvfAcNAm3fmOwcKxg0rwTM6PZGhnKHxeWYxB6Wvj0x79pMN5u/8EObISz
nGUGM1jOcvTo6U9/pjGNpjQt1ziSR5NHTcxNBeoLIV678fwykIW6zfqNEGLRHfqOBkYDeHt7t4iL
iyufyUskEslDSny8Wips8WLIy4PnnlNFXbt25jtg0+Nz2TbzJPu/jaY4X0eT57zpFuhLnXaVynbA
5heSumQDSV+uJDP2Cr95GFihu0ZCeipLlixh+PDhpW0XLlxI27Ztady4MUIIco7uJCkshOw/tqKx
d8S97+t4DJqMlUcVk+adkZfAzqg57D27kMKSHBpU6YK/XzD1q3QuVwdsAgnMYQ4LWUgOOXShC9OY
Ric6SQes5LY8MmJOUZSOwAKgrRAi7ca1KkKIBEVRPIBtwAQhxN6y4smVOYlEIvmL9HSYPx+++gpS
UqBVK1XU9eqlbtWbQ156Ibvnn2Hn3FPkphbi08oD/yA//HrVQKO5s2gROh0ZP24ncXoYOZHn2FVB
x6CgiVQdNxCtkwMxMTHUqVMHg8HAc889R3BwMG3btkVRFPKjT5AYFkLG9rUoGi0Ve7yC59BAbH0a
mDTv/KJM9p79hh1Rs8kuSMTbrTnd/IJo4fMiGo2ZN8MImWTyDd8wm9kkkkhzmhNMMP3oh5byiyN5
NHgkxJyiKL7AL0APIcT527T5EMgVQswoK54UcxKJRHIrBQWwdCmEhsLly1C3rirqhgwBa2vzxizO
13Fw6Tm2zThJ6uUcPOs60y3Qj6eG1MHS+s6iRQhBzrbDJIaEkbPjCFpnB9zHvsgniX+ycOn3N7Vt
1aoVwcHB9OzZE41GQ9HVGJJWziT11yWIogKc2/fCa2gQDn6tTZp3ia6QwxdXsDUylKSs87g51qSr
bwCt6w3HysJMO7ARCilkOcuZwQzOc56a1GQqU3mVV7Gl/OJIHm4eejGnKIo3sBMYKoQ4+Lfr9oBG
CJFz4+/bgP8TQmwpK54Uc5J/ci8P/JvLvYz3MJgSHoY5PqzodLBunWqWOHFCvdeTJ8Prr0MF046i
3YJeZ+DPdZcJnx7BlRNpOHnZ0nlyE9qPaYits1WZ/fOOnSEpJIyMdTs5rSlgdVUD4XFn+ed3Vb16
9QgMDGTEiBEoikJJRgopa+eRvHYe+qx0HJq2xXNoEM5tn0PR3DlHHoDBoCcibgNbI0O5nPwHjjbu
dGw8gQ4Nx2FvY6Yd2Ah69KxnPaGEcpjDuOPOBCYwjnFUpPziSB5OHngxpyjKaqAD4AYkAR+AmmVR
CLFQUZTFQD/gf4fcdEKIJxRFqYm6WgdgAawSQnxqSkwp5iT/5F6m4jCXexnvYUgX8jDM8WFHCNix
QxV127eDoyOMGaMKu8qVzR1TEL0jgfDpkZzdnoCNoyXtxjak86TGVKhcdi62wotXSPpyBWnfb+Ry
UQ5rayisT4imuKSktE27du3Ys2fPTf30+bmk/bqEpJUzKb4eh03NhngOCaRi95fRWJYtJoUQXLi+
l/DIEE5d2Yy1hT1t6r9GV983qehgph3YWBwEe9lLCCFsZjP22DOKUUxhCt6UXxzJw8UDL+buB1LM
Sf6JFHP3L5a5PAxzfJT480/VAfvjj+o5uiFD1C3Y+vXNHzP+z1TCQyI4/uNlNFqFVkPr0C3QD696
ZS//lSSlqe7X+T+SlJnOumoKP6RdJDs/j99++41nn322tO3ChQvp1asXlSpVQuhKSN/6A0lhIRRc
jMLSowqeL0/Brc9otPaOJs07IT2KrZGhHLm4GoCWtQfRzS+QKhX/gx3YCFFEEUIIa1Btx4MYRCCB
NKF840gefKSYM4IUc5J/IsXc/YtlLg/DHB9FYmLgyy9hyRK1ykSvXhAcDE8/bf6YKZey2TbzJAeX
nENXpMevVw38g/2o2cqzzL76nDxSF68naeYqMq5eY1cVC8Z/9gGug7qjWFpw5MgRnnrqKaysrBg6
dChTp06lXr16CCHIPhRO4rLp5B7fjdaxAu4vvoHHSxOxdC07LkB6bjzbTs7kQPRiinR5NK72LP5+
QdSpZFplClOJJ54v+ZLFLCaffJ7jOQIJpB3tpAP2MUGKOSNIMSf5J1LM3b9Y5vIwzPFRJiVFdb/O
n6+6YZ95Rq0B++yzalJqc8hOLmD3vNPsmnea/Iwi6neuwqTwHmXWfwUwFJeQsSacxJAwCk/HYOXt
hcebg3lj11p+3rC+tJ2iKPTu3ZugoCBatWoFQN6pIySGhZC562cUSytcn38Vz1cCsPGuY9K88wrT
2X1mPrtOfUVOYQo+Hq3o5hdI0xq90Shm3gwjpJPOfOYzl7mkkkorWhFEED3pKR2wjzhSzBlBijnJ
P5Fi7v7FMpeHYY6PA7m5ap66WbPUvHWNGqnbry+/DJZm1pgvzC1h/+JoclMK6P1py3/VVxgMZG0+
QFJIGLn7TrDXoZgVzrn8mXD5lrbt2rVj2rRp9OjRQ40bf4Gk5aGkbVqG0JVQoVM/vIYGYd/oSZNi
F+sKOHjue7ad/JLUnBg8nevSzS+Qp+oMwVJrph3YCAUUsJSlhBLKZS5Tj3oEEshgBmODaRUwJA8X
UswZQYo5yT+Rbtb7F8tcHoY5Pk6UlKgVJUJD1QoT1aqpRolRo1TjxP0g99BJ1QG7fheRVsWsrqRj
R1z0TW0GDBjADz/8cNO1ktREkn+YS8qPC9DnZuH4REc8hwXj1KqbSdunBoOePy+vIzxyOvGpf+Jk
60XnJpNp33AMtlbO5fb+dOhYxzq+4AsiiMALL6Ywhdd5HWfKL47k/iPFnBGkmJNIJJK7gxBq7deQ
ENizB1xcYOxYmDhRFdr3g8LoWBJDw0hfvpkLulzWVlf49Uo0Or2OY8eO0aJFCwAMBgPff/89AwcO
xMHBAX1uNim/LCJ51SxKUq5hW8cXr2HBuHQZgGJhUWZcIQTRCTsIj5zO2YTt2Fg60q7BGDo3mUwF
ezPtwMbiINjBDqYzne1sxxFHxjKWSUyiMuUXR3L/kGLOCFLMSSQSyd3n8GFV1P3yi5p0+NVXISAA
ate+P/MpSkgmZe4aUr5ex7WcDI7UdyHgqxAcO7dEURQ2bdrECy+8gIuLC+PGjWPChAl4eHhgKC4i
fcsqkpaHUnj5LFaVquM5OADXXiPQ2padTgUgPvUEWyNDOBazFo2ipVWdIXTzC8Srwn+wAxvhT/4k
lFDWshYtWoYwhCCCqEe9co0jubdIMWcEKeYkEonk3nHhgrr9umyZmpC4Xz/VLPHEv/5q+m/kpRdy
+XAyR1ecxzY5jvpRa9EnpWHXvD6eQUPp9dX/sf/AgdL2NjY2DB8+nICAAGrVqqddbAkAACAASURB
VKWex9u3icRl08k7eRCtsyseA8bjMXA8FhXcTJpDSnYM20/O5MC57yjRF+JXvSf+TadRy/M/2IGN
cIlLzGQmS1hCEUX0pCfTmEYrWpVrHMm9QYo5I0gxJ5FIJPeexESYPRsWLoSsLOjUSU1r0rXrnQ0t
5cXXfbaSdT2fep0qc+lAEhotDOhdQub8FRScj+NXVx0rlCRiU28+jKnRaHjxxRcJCgoq3ZLNjThA
YlgIWXt/RbG2xa3XSDxfCcC6cg2T5pJdkMzu0/PYfXo+eUXp1PZqi79fMI29ny1XB2wyycxjHvOZ
TzrptKUtwQTzHM/JtCYPEVLMGcFUMScPWD98mPuZyc9aIrl3ZGfDN9+owu7aNWjaVF2p698fTDiK
ZhaHlp1n5dh9fHLxpdJKEx81/pGX5rWhbjsvMjfsIWn6MrIPR7HHsZgVjjmcvBZ30xgTJkxg7ty5
N10riDlD0vJQ0n9fiRAGXLoMwGtYMHZ1/UyaV2FJLgeiv2N71EzSc+Op7NKIbn6BPFlrEBbasitT
mEouuSxmMbOYRTzxNKIRgQTyMi9jiZm2Y8k9Q4o5I5gq5mTqg4cPcz8z+VlLJPeeoiJYtUo9Vxcd
DTVqqGfqRowAO7vyi5ObVsjc7r/TrG8NerzVDICs6/ks6B3OizNaUeeZSoBqWMjdd4LE6cvI2ryf
4zbFrPYsYU/cObRaLRcvXqRGjRoAFBYWsnHjRvr06YOFhQXFSVdJXj2blF8WYcjLwalVNzyHBeP4
REeTHLB6QwlHL/3A1sgQEtKjcLGvSucmU3im/ihsrMrPDlxCCWtYQyihRBHFEY7wJKalXpHcP8wV
c+W3xiuRSCQSiRGsrWH4cDh9Gtavh0qVYMIE8PaGjz6CtLTyiXNu1zXS43PpPq1p6bVrp9Nx8rSl
MPuvmq6KouDYrjn5Y94kJXAGnfr24csEZ1ZqG/F+86545uhK265YsYIBAwZQt25d5s+fj86xIlUn
z6DJpngqj/uM/AuRXBjbmehhLcnY/iNCr7/jHLUaS1rVeYX3+kUyvvtvuDvV4qc/AnhrlTfrj7xD
dr6RrQMzsMSSIQwhkkj2s18KuUccuTKHXK15GJErcxLJw4sQcOCAulK3cSPY2sJrr6mrddWrmz/u
V8/9jpuPI4PmtQWgMKeYPQvPcnbbVcb83A0bh7+2GUsKdVyNTGfTR8eJOZRE28HVeUL7J+nfrceQ
V4DTs21wn/oKT415hfPnz5f2c3NzY8KECYwbNw5XV1cMRYWk/RZG0ooZFMVfwLpabdUB+/wwNDa2
Js37cvJhwiNCiIj9Ba3WitZ1h9PVNwAP5/tkB5bcN+Q2qxGkmHt0kWJOInk0OH1adcCuXKn+DA4c
qJolfH3/3TglRXq+H7oL7+ZudA9WV+aiNsezZ8EZGnStQudJTTAYBBrNrf8JpF7OJuy1vbR9rT7N
/d1JWfAjyXN/IDcljdVVDKzKiiEjN+emPnZ2dowaNYopU6ZQvXp1hF5P5u71JC77gvwzx7Co6IHH
S5Nwf3EsFk4uJr2HpMzzbD05gz/OL0MvdDT36Uc330BqeDx4q2oCIY0VdwEp5owgxdyjixRzEsmj
xZUrMGeOapjIzQV/f1XUdehgugN237dnObr6EhO39ODSwSQ2f3ICj9pO9JvRChsHS4QQpefadMV6
Tm6Kx7OOM1WaVGT1+P1YWGvp83lLNBYaKCoi9fuNJH25gqyYeH5zN7DScJ0raSk3xfzkk0945513
Sp8LIcg9vpvEZdPJPhSOxtYet76v4zloMlZe1Ux6H1n5iew8NYfdpxdQWJJNvcqd8PcLomFV0ypT
3AvSSecwh1nLWnzw4T3ek+KuHJBizgjSzfroIt2sEsmjSUYGfP01zJ2r/qw++aRaA7ZvX9CWUWM+
N62QVWP3czr8ClV9Xan+hBvdpzXFydMOXbEeC6ubB9g+O4qf3jyEe21n7CtaU7utFy/OaEVJoY4L
+xI5se4yFtYa2jbNIXveCrL/PMtO5xJW2mVy+voV7O3tuXLlCi4uLjfmnkFkZCTt27dHURTyL5wk
KSyE9K1rAAXXHoPxHBKIba1GJt2LguJs9p1dxI6oWWTmX6Oqqx/+fsG0qNkfreYu2YFNpA99uM51
OtGJAxzAEkvWsU6WF/uPSDFnBJlnTiKRSB5OCgvV5MNffqkmI65dWz1T9+qrYFNGjfnMa3kIAS5V
7NHrDBTn67B1Mp7+I+l8Jt8P3U3XAF/qd66MfUUbVo7ZR8wfyTToWoXUmGxSLmYzbpM/FufPkjh9
Gdnb/uCwbTG5zzRkypKvsKriAcCnn37Ku+++S8uWLQkKCqJ3795otVqKrseRvHImqesXYyjMx/mZ
5/EaFoy9XxuTVtp0+mIOX1zJ1sgQEjOjcXWoTlffqbSuNxxrS9MqU5Qny1jGWMZykYulZcQa05h5
zKMDHe75fB4lzBVzCCEe2UeLFi2ERCKRSB5edDoh1q4V4sknhQAhPD2F+PRTIdLTTet/4pfL4m2f
VUKvNwghhIg9liyEEKKkSCf0Or0oyCkWO+ZEicLcYiGEEKe3XhFjtItEfERq6RjT26wXh8LOlT7P
O35WXHrpLXFM86Q4bvmUuDziI5H25xnh7u4ugNJHnTp1xKJFi0RBQYEaMyNVJCz6SJzo5CqOtUCc
Hf60yNi1Xhj0epPei96gFycurxfT17cWo79BTFnqKn499qHIKUgtu3M5kSpSxRPiCfGZ+Kz02jVx
TbQULcVesfemtgZhuGfzelQAjgkz9I5MTSKRSCSSBxatVk0yfPgw7NihJh5+5x3V9Tp1Kly9euf+
TXvX4N2Ifmg0CrFHk9k17zQpMdlYWGnRaDXkphSw5YsIUi5loyvWs2N2FK1H1KOanyugul4tbSzU
c3Q30FXxpnDEG1T/YzVuo/qQvjqcE80H0dm+EtZWf60AXrhwgdGjR+Pj48MXX3xBLloqj3of39/i
qRY0j5LU61ya2pszAxqRumEJhuKiO74XjaKhaY1eBPbcT2DPfdTybM2m4x8ybWU11hyYSFpO3B37
lwe72EU88UxjWum105zGE09yUE0iAnXH739n6E5ykmKK7/rcHmekmJNIJBLJA4+iqGXBtmyBiAh4
/nm1skTNmn/lsLsd/9tirdyoIvYVrfnYbx3LR+1l40fHWdhvG171K1DV15UrJ9K4sDeRFz5sUdo3
4VQGNk6W3NAnRP0WzyfNfmbLFxF82G43f7p0olHMRhq8N4bgLFc2FNdndFU/nOwdSsdITEzkrbfe
Yt26dQBobOzwGDCOxj9fwOeTVShWNsR9PJJTvWqSGBaKPje7jHuhUNurLeO6/8oHL57iiVoD2Xt2
Ie+uqcV3OwdzJS3SzLtcNt/zPf3pXyrUcsjhBCcopJB2tANAh5qnbytbGcpQxjGOKlThLd4qfU1S
vtwzMacoyhJFUZIVRTl1m9cVRVHmKopyUVGUk4qiNP/ba90VRTl347VpxvpLJBKJ5PHAz0+tKHHx
Irz+OvzwAzRuDD17qvnrbncU3MrOgv5fPs3/nRuApa2W1Jhs2r3egCHfqiLk0LLz1GrjWVoGTF9i
4GpEGrkphTT0r0rEhli2z4qi7aj6vLnjeQL39+TSgUSKFBsq/98YmsRvounsaYzXVGVjXm2mevpS
yUVd4atUqRKvvPJK6VyuXbtG9IULVOw+iAYr/6TOvHBsfBqQMDeIk89V4+pX0yhJvV7mvahcsRGv
dvieT1+KoXOTyUTG/con65oyZ3N3zl3bhSjHc/FFFOGAA9X4y5W7j33sYQ/P8RwOOKBDhyWWlFDC
O7yDO+6EEcZJTrKd7YQTXm7zkfzFvVyZWwp0v8PrPYA6Nx6jga8BFEXRAvNvvN4QGKQoSsO7OtMH
EK1W/c30n4+y3F0PeiwvL+OxvLzKP5a5mDvHh+G9SSQPMzVqwFdfQXw8fPghHDwIbduqj19/BYPB
eL8Kle15aW4bhn7XnnavN8S9lhNCCLRWGtxrOZW2u3wkmdNbrtCoe1UsbbQcXX2RKr4Vef59da2h
egt3cpIKiN55DQCtgx2ekwbR+OJ6Gi3/lOEeDfg5w5uPXXx5q0NPLIr/WpX6/PPPadiwIb169eLQ
oUM4tepG3QXbqR92FOfW3UlaHkrUCzWI+2QUhXHnKQsXh6q82GoGn78cT68nP+VqWgQzN3Xi8/Ut
OR7zIwbDnStTmII11nShC+GEU0wxu9nNTGZSlaqMZCTw19bqBjbgiCOTmIQPPlSiEjWpyVGOYrjx
B/7akpX8N+6ZmBNC7AXS79CkFxB24wzgH0AFRVEqAS2Bi0KIGCFEMbDmRtvHitv9p3S76w9LLGNp
Qu50/X5g7hwfhvcmkTwKuLnBBx9AXJwq7hISoFcvaNQIli6F4tsc19L+7Rycoig08q9K7JEUMq/l
cf1sBhs/OI6VvQXtxzbk5KZ4dMUG/F6ojkar9su4mktGQh7VW7jdNK5iaYHrK8/SIHI1DTZ/RX+/
VrRefYwo7+dJeGc+106f47vvvgPg119/pU2bNrRt25aNGzdiW785NT//gcY/n8e15wjSfl/B6Rfr
cymwL3mnDpd5L+ytXXi22dt8NiiWwW0XUlCUyaLtA/jgxwbsPfMNJbpC827yDfrSFzfccMed93iP
JjThIz7CAQeKKUaL+lu/Cy5kk40V6hZ3DjlYYEEccWjQUEwx29jGWMYyhSlkkvmf5vW48yCdmasC
XPnb86s3rt3uukQikUgkpdjbw/jxaiqTVav+qgnr4wMzZkD2nY+iUa9jZWo+7cG7tdewaux+nCvZ
0ufzlthXtOFqZBr2LtbUfNqjtP2ehWdp0KUKthWsjY6nKArOPdpQb9c31P9jKY6dniDx86Ucbz6I
Nh431y07cOAAPXv2pEmTJixduhTFoxrV3/qaJhvj8Br+NjnHdxP9aivOjW5P1v7NZW6fWlrY0K7h
63w0IJrRXX7E1sqZlfvH8PbqGmw+8Rl5RRmm3dR/4Iora1nLWc6yhjXMYhauuN4k3ACa0AQHHFjF
Kq5znWlMYzWreYmXAJjMZAIJxBFH4omnPe25ShluFsntMccCa+4DqAGcus1rm4C2f3u+A3gCeBFY
/LfrQ4B5d4gxGjgGHPP29v6vLuEHBvUUiPGHjHV3MXeOD8N7k0geZQwGIcLDhejUSf25c3YWIjhY
iOvX79wvP6tIpMXlCL3ur5Qhs7puEuuC/yh9nn4lR3zW8mexZ+FpUVKkM3lOBediReyoT8Rxq1Zi
LY3EizWaCEsLi5tSmgBi06ZNN/XT5eWIxBUzReSzVcWxFojTA5uI1E1hwlBSbOK9MIjohJ1i9m/+
YvQ3iAlLHMTag2+K9JwrJs/9dvwifhE1RU1RIkqEEEJki2whhBAHxAHxtHhajBQjhatwFc+IZ4QQ
QoSLcKEVWhEhIkrHaCPaiDARduvgjxk8AqlJEoC/1zqpeuPa7a4bRQixSAjxhBDiCXd397syUYlE
IpE8+CgKdOumpjQ5ckT9e2iomtZk1Cg4f5ujaLZOVlT0dijdThVC4FW/Atb2lqVtfgz4AydPWxp0
rXpLZYk7YVO3OtUXvUOTuI20njaGdzIqsl7XgBHefjja2QHQsGFDevToUdonNjaWlOxcPAdPocmG
GGp8uAxhMBD7wVBO9a5N0uo56PNzy7gXCvUqd2TSs1t4t18Evt4vsPPUHN5ZU5Olu4dzLf0OduAy
6E1vIojAAguyyWYd64gmmta05iAH6UlPDBj4kA8BmMUsRjISP/wAKKQQW2yx4K+qFokkEk44ySSb
Pa/HCnMUoLkP7rwy9xzwO6AArYAjN65bADGAD2AFRAKNTIn3KCUNflRXyx6G1Su5MieRPDqcPy/E
mDFCWFsLoShC9O0rxOHDZfe7sO+6mOyyVMzsvEks6BMupnmvFInnMv7zfHRZOeJ6aJiIrNxd7MJP
TK7kJ76f/I4wlJSUtunfv7+wtrYWo0ePFufPnxdCqCttmfs2iejXnhHHWiBOdHQRCV+/J4rTkkyO
nZJ9WazeP0GMW2wrRn+DmPf7C+LC9X3CYDA/2W+JKBHvifeElbASL4mXxAAxQLQRbcTb4m0hhBB/
iD+Eg3AQCSKhtM9RcVT0EX3ESrFSCCHEJrFJVBKVRCfRSdgIG/G2eFvohOmrnw8zmLkydy+F3Grg
OlCCeu5tJDAGGHPjdQXVtXoJiAKe+FvfZ4HzN157x9SYj5KY02iMiwKN5uGO5elpPJanZ/nHMhdz
5/gwvDeJ5HElMVGIt98WokIF9eeyfXshNm9Wt2ZvR2Fusdj82Z/i2I+XRPKlLCGEKK0s8V/RFxWL
lCUbxKn6/cQxWoiTNV4QSXNXi3MnTwmNRlO6/aooiujXr584cuRIad+ck4fExYDe4tgTijje2kbE
ffGGKLxyyeTYOQUp4tdjH4opS13F6G8Q09e3FhGXNwi9wbTKFMZIEAniLfGW+E58J6JFdOkW7Bvi
DeEv/EvbFYti8a34VrQVbUWqSBXrxXrRWXQW74v3hRBCHBPHRAfRQSSKRLPn8jBhrpiTtVklEolE
8tiSkwOLFqkJiK9eBV9fCAyEgQPB0rLs/uWNMBjI2riXxOlh5B06yTlnhRkOqZxIiL2lbYcOHQgO
Dsbf3x9FUSiMjSZx+QzSfwtDGPS4dO6P17Ag7Oo3vzWQEYp1+RyIXsK2kzNIy43Dq0J9uvkF0bL2
y1hqjZs8/i2TmUwJJcxnPgAHOMAsZtGMZkxmMiMZSWUqE0poqTO2IQ15j/cYxKBymcODjLm1WaWY
k0gkEsljT3Gx6oCdMUOtJuHtDW++Ca+9prpk7we5ByJInL6MzI17+dOqiNWVdOyOO3dLuxMnTtC0
adPS58Up10hePYeUdQsx5GXj2LILXsOCcWzZGUVRyoyrN+g4HvMj4ZHTuZoWSQW7ynRuMoVnGozG
1sqpzP534nd+533eZwMbyCKLCUygClWYxSy2sY0f+IEJTKAjHQG4ylUa0YijHKUudf9T7IcBKeaM
IMWcRCKRSP4NQsBvv8H06bB/P1SsqKY7GT8e7penruBMDEmhy0lf+Tvn9Xms8YZNV86i1+vp2LEj
O3fuLG17+fJlPDw8sLe3R5+bRcrPi0heNYuS1OvY1muG19AgXDq/iGJhcYeIKkIIzlzdSnhkCOeu
7cTG0on2DcfSuclknO3My35eSCFBBLGYxbSkJdWoRgghVKISb/M2SSQxn/nYYAPAu7zLWc7yNV/j
gUcZoz/8SDFnBCnmJBKJRGIuhw6pom7DBrC1hREj1NW6mjXLN05xgQ4r27LFVfHVJJJnryblm59J
yM3gR28N/SaM5oWAN0pX3Nq3b8+pU6cYP348EyZMwM3NDUNxEembV5C4PJSiuHNYVfHBc3AAbj2H
o7GxM2mOsSnH2BoZyp+Xf0KrWNCq7lC6+QbiWcG81bIccsgggypUKd1O7UY3mtOcL/gCUFfl+tGP
EYxgOMNvymP3qCLFnBGkmJNIJBLJfyU6Wk1psnw56PUwYAAEBUGzZv99bL3OwAf111LjSXe6Bfnh
3cytzD66jGxSFq4jec4adElp2D3REK+goURXtqV127al7WxtbRkxYgQBAQH4+PggDAYy92wgKSyE
vKg/sKjghvvACXj0H4dFBVeT5pucdZFtJ7/k0Pml6PRFNK3RB/+mwfh4tDT7HoBa1msSk0orSwAM
ZCAFFDCb2dSknBX0A4oUc0aQYk4ikUgk5cW1a6pRYuFC1TjRpQtMmwadOqk57cyhMLeETR8dZ983
ZynMKaFB1yr4BzelfqfKZZ5vMxQWkbZsE0kzVlB08QpHK1nxeckl4lNvzs2m1WoZMGAAQUFBNG3a
FCEEuSf2kRQWQtb+39DY2uPW+zU8B7+JlZe3SfPOzk9i56m57DmzgPziTOpWak83vyAaV+th0rk8
Y+xnPz3pSXOa44QTxznONrY9Fmfl/ocUc0aQYk4ikUgk5U1WliroZs1Say03a6aKur59wYSjaEbJ
zyxi78Kz7JgdRXZSAd4t3PAP8qNZX5+basgaQ+j1ZP6yi8SQMLKPnma3cwkr7LI4dT3+pnZarZYr
V65QqVKl0msFF0+RuDyU9C2rAKjY7SW8hgVhW7uJSfMuLM5hX/S37IiaRUbeVapW9KWr71SerP0S
Ws2/twPnkcdc5lKHOrSgBT74YMCA5oGqcXD3kGLOCFLMSSQSieRuUVgIK1aoW7Dnz6s1YAMD4dVX
1TN25lBSqOOP5RfYGnqS5AtZuNV0pFugH08Pq1vmuTohBLm7j5M4fRlZ4Qc5alPMSo8iDsRfAOCl
l15i9erVpe3j4uKoWrUqWq2W4sR4klbOInX9txgK8nBq3QOvYcE4NG9nogO2hCMXV7E1MpRrGaep
6OBN5yZTaFv/NWwsHcy7GY8hUswZQYo5iUQikdxt9Hr49VfVLHH4sOp6nTgR3nhDdcOag0FvIGJD
HFtDIrl8OBlHdxs6TmxMh3GNsHcpO+dbfuR5kkLCSP9hG2fJY001eDvkU1r376WObzDQsGFDdDod
U6dOZdiwYdja2qLLSiflxwUk/zAXXUYK9o2fwnNoEBXa90LRll22zCAMnL7yO1sivuBi4n7srSvS
odE4OjaagKOtLLFZFlLMGUGKOYlEIpHcK4SAvXshJAQ2b1bz040apTpgq1Uru7/xMQUX9l4nPCSS
U5uvYG1vQdtR9enypi8Vq5W94lUUe42kmStJ+24DhvxCnJ9/Bq/gYexIi6N3796l7Tw8PJg4cSJv
vPEGLi4uGAoLSNu0lMTlMyhOiMHauy6eQ6bi+uwQNNY2Js39UtIhwiOmExm3AUutLW3qjaCL75u4
Oz0eZgZzkGLOCFLMSSQSieR+cPKkmoD4f7uagwapDtjGjc0fMyEqna2hkRxZdREUaDmoNt2C/KjS
uOzlP11qJsnz15L81Q/o07LYUsuGGUknyczNuamdvb09o0ePZsqUKVSrVg2h15Oxcx1JYSHknz2O
hasXnoMm49bvdSwcK5g078TMaLZGhnL4wgr0QscTNQfQzS8QbzfTKlM8TkgxZwQp5iQSiURyP4mL
Ux2w334LeXnQo4dqlnjmGfMdsGlxOWyfFcWBxdEU5elo8pw33YL8qPOMV9kO2PxCUpdsIOnLlWTG
XuG3/2/v7oOrqu88jr8/AQSMmIg8mKLLg9UgyxS0VbE+rA8oPhVc6+yAIms7W6PrtFAHiO5O3XU6
u2rAogVqRykq4hNoXaq1iFEsWleoIiAIKIsgEAmQgEBIQgLf/eOc4L2Xm9xLkia5Od/XzJ3c3PM7
5/7Od77oN79zfufX6zBza0vYVr4rrl1ubi4lJSV0DW/+MzP2fbiY7U89yL6lb5KV3Y2eNxbQa8wE
juvVJ61+76ko4a3Vj7Lk08eoqtnHWX2GM2JIIQP7pLcyRWN9wAdUUMHlXI74231Pc/BiLgkv5pxz
zrUFZWXwm9/A9OmwcycMGxaM1I0aBVmNnKi5v6yKd2auYfH0NezfVUX/Yb0YMXkIQ0b1Iyur4aLF
amvZPb+Y7UVz2LdiPcW5Ncztspt127cCMGHCBKZNm3akfUlJCXl5eUjiwPoVbH/6IXYXz0NZHeh+
zVh6j5tE1/5npdXvA9V7eHft4xR/Mo29lds57eSzGTG0kHP6/5AOWY2cDtyAG7iBBSzgHM6hkEJu
5EY60vzf0xy8mEvCiznnnHNtSWUlPPkkPPwwbNwIZ54ZzIC99Vbo3Mi17A8eqOUvT66n+OFV7Ppi
H73zc7hq0hDOH3sGnTo3PGnBzNj35lK2P/Q0e99exv8ef5AXelQz56V5nH5usN5rVVUVffv2ZcCA
ARQWFjJy5EiysrKo3rqR0md/xa4/zMaqK8m5ZGQwA3bI99Pqd01tFUs3zGXRyimUfv0ZPboN4Koh
E7ngzNs4rmMjpwMnUUUVc5nLFKbwGZ8xgAFMZCK3cRtdab7vaQ5ezCXhxZxzzrm26NAheOmlYLLE
8uWQlwfjx0NBAeSmdyva0cesPczyl79gUdFKvly+i5y847l8/GD+4Y5BdM1JvRRWxYefUlo0h90v
v406duDkcdfRe+JY5vx5EQUFBUfa5efnM2nSJMaOHUvnzp2p2b2TnfNmsGPeDA59Xc4JQy+i97jJ
5Fx0HUpj2PGwHWblpgW8sbKIL3Z8QLcuPbls8E+5dNBdZHdp5HTgJA5xiAUsoIgilrKUnvTkZ/yM
u7iLkzip2b6nKbyYS8KLOeecc22ZGbz1VvBYk+JiOPFEuOOO4NEmfdK7FS3JMY21xdt446GVrHtr
G11O7MQldwziivGDyf1Wdsr9qzZsoXTqM5Q99Rp2sIZnBh7HYxv+ysGamrh2eXl5TJgwgYKCAnJy
cjhUWUHZgt9R+uyvOPjVZroMGETvWyfR/eqbyeqUupg0Mz7/aglvrCxi9ZbX6dwxmwsH/gtXfudu
up+Q3soU6TCMJSyhiCJe53WyyeYn/IS7uZvTaOS042bixVwSXsw555zLFB9/HBR18+dDhw7BpddJ
k2DgwMYf88vlu3ijaAUfzf+CDh3F+beewVWThnBKfurhv5rSMnZMf5GdM+dTuqecl08TL5ZtYO+B
irh2+fn5rF279sgkBqutoXzRi5Q+M4XKz1fRqVcfet/8c3r84+10yO6WVr+3lX/CopVTWLYhmA58
7umjGTF0Mn26p7cyRbpWsYqpTOU5nkOIMYxhMpMZTBOmHTeBF3NJeDHnnHMu02zcGNxTN3t2sMrE
qFHBDNhhwxp/zJ0b9/Lmw6t4f/Z6aqsPMWRUP0YUDmHAsN4p9z20r4JdT7xC6bTn2b21hFdPMeZW
baF0TzkADzzwAPfcc8+R9uXl5XTv3h0zY+/7C9k+p4j9H71Dh2659LzpTnqNHk+nk1N/L0DZvs28
9ckjvLfuCaprKxh82rWMGFrIGadc3KwzYDezmWlMYxazqKCCa7mWQgq5GujFSgAACQNJREFUmItb
dAasF3NJeDHnnHMuU+3YATNnBjNgKypg2zbo0aNpx9y7o5J3Zqxh8Yw1HDxQS1HJLWR3T+8hwFZT
S/nzC4M1YNds4MOCy3hm+bssWrSI3PBGv7KyMvr168fw4cMpLCxkWFiBVqxexvY5RexZ/HtyL72B
06f8/pj6XVFVzjufzmTx6ulUVO/mgZs3k5v9rWM7+TSUUcZMZjKDGexmN1/yJXnkpd6xmXgxl4Sk
ncDmY9ytB7ArZavo8HjE83jE83jE83jE83jE83gczWMSL9/M0rsWHaNtPmilmZjZMS8EJ+nDxlTF
7ZXHI57HI57HI57HI57HI57H42gek3iSGnU5sZGPKnTOOeecc22BF3POOeeccxnMi7mjPd7aHWhj
PB7xPB7xPB7xPB7xPB7xPB5H85jEa1Q82vUECOecc8659s5H5pxzzjnnMlgkizlJXSQtk7RS0hpJ
9ydpI0m/lrRB0ipJ57RGX1tCmvG4VNLXklaEr/tao68tSVIHSR9Lei3JtsjkR50U8YhUfkjaJOmT
8FyPmn0WtfxIIx5Ry49cSS9JWidpraQLErZHLT9SxSMy+SEpP+Y8V0jaK2lCQptjzo92/WiSBlQD
l5vZfkmdgPck/cnMPohpcw1wRvg6H3gs/NkepRMPgHfN7PpW6F9rGQ+sBU5Msi1K+VGnoXhA9PLj
MjOr7/lYUcyPhuIB0cqPR4GFZnaTpOOA4xO2Ry0/UsUDIpIfZrYeGArBH8jANuCVhGbHnB+RHJmz
wP7w107hK/HmwVHAnLDtB0CupJZ7DHQLSjMekSLpVOA6YFY9TSKTH5BWPFy8SOWH+4akHOAS4HcA
ZnbQzPYkNItMfqQZj6i6Avg/M0tc3OCY8yOSxRwcuWS0AtgBvGlmSxOa9AG2xPy+NfysXUojHgDf
D4d8/yTp71u4iy3tEWAycLie7ZHKD1LHA6KVHwYUS/pI0u1JtkctP1LFA6KTH/2BncCT4W0JsyRl
J7SJUn6kEw+ITn7EGg08n+TzY86PyBZzZnbIzIYCpwLnSRrc2n1qTWnEYznwd2b2HWA68D8t3ceW
Iul6YIeZfdTafWkL0oxHZPIjdFH47+Ua4C5Jl7R2h1pZqnhEKT86AucAj5nZ2UAFcE/Du7Rr6cQj
SvkBQHi5eSQwvzmOF9lirk443LsYuDph0zbgtJjfTw0/a9fqi4eZ7a27FGtmrwOdJDVxyec260Jg
pKRNwAvA5ZLmJrSJUn6kjEfE8gMz2xb+3EFwv8t5CU2ilB8p4xGx/NgKbI25uvESQTETK0r5kTIe
EcuPOtcAy82sNMm2Y86PSBZzknpKyg3fdwWuBNYlNPsDMC6cVTIM+NrMvmrhrraIdOIh6RRJCt+f
R5A7ZS3d15ZgZvea2alm1o9gGPxtMxub0Cwy+ZFOPKKUH5KyJXWrew9cBaxOaBaZ/EgnHlHKDzPb
DmyRlB9+dAXwaUKzyORHOvGIUn7EGEPyS6zQiPyI6mzWPODpcCZJFjDPzF6TdAeAmf0WeB24FtgA
HAB+1FqdbQHpxOMm4E5JtUAlMNoi9sTpCOdHUhHOj97AK+H/ezoCz5nZwgjnRzrxiFJ+APwUeDa8
lLYR+FGE8wNSxyNS+RH+0XMlUBDzWZPyw1eAcM4555zLYJG8zOqcc8451154Meecc845l8G8mHPO
Oeecy2BezDnnnHPOZTAv5pxzzjnnMpgXc845B0i6TdL+FG02SZrYUn1qiKR+kkzS91q7L8651uXF
nHOuzZD0VFigmKQaSRslTa1nLceGjvHa37KfLa09npNzrvlE9aHBzrm2qxi4FegEXAzMAo4H/rU1
O+Wcc22Vj8w559qaajPbbmZbzOw5YC5wQ91GSYMk/VHSPkk7JD0v6ZRw238C/wxcFzPCd2m47UFJ
6yVVhpdLiyR1aUpHJeVIejzsxz5Jf4697Fl36VbSFZJWS6qQtFhS/4Tj3CupNDzGk5LuU7AWboPn
FOor6U1JByR9KunKppyTcy7zeDHnnGvrqoDOAJLygCUEa3+eBwwHTgAWSMoCpgLzCEb38sLX++Fx
KoAfA2cRjPKNBv69sZ0K15L8I9AHuB44O+zb22E/63QG7g2/+wIgF/htzHFGA/8R9uW7wGfA3TH7
N3ROAP8F/BoYAvwVeEHSCY09L+dc5vHLrM65NitcdPsWgkIG4E5gpZkVxrQZB5QD3zOzZZIqCUf3
Yo9lZr+M+XWTpP8GJgK/aGT3LgOGAj3NrDL87BeSfkBwmbgo/KwjcJeZrQ/7OxWYLUnh+pPjgafM
bFbY/gFJlwFnhv3en+ycwrVQAaaZ2avhZ/8GjAv79V4jz8s5l2G8mHPOtTVXh7NKOxLcN7eAYKFu
CEauLqln1unpwLL6DirpJmAC8G2C0bwO4auxvktwL9/OmMIKoEvYlzrVdYVcqAQ4DjiJoAgdCDyR
cOylhMVcGlYlHBugV5r7OufaAS/mnHNtzRLgdqAGKDGzmphtWQSXNpM9HqS0vgNKGga8ANwP/BzY
A4wkuITZWFnhd16cZNvemPe1CdssZv/mcCQ+ZmZhYem30DgXIV7MOefamgNmtqGebcuBfwI2JxR5
sQ5y9IjbhcC22Eutkvo2sZ/Lgd7AYTPb2ITjrAPOBWbHfHZeQptk5+Scc4D/9eacyywzgRzgRUnn
SxogaXg4o7Rb2GYTMFhSvqQekjoRTCroI+mWcJ87gTFN7Esx8BeCyRfXSOov6QJJ90tKNlpXn0eB
2yT9WNIZkiYD5/PNCF595+Scc4AXc865DGJmJQSjbIeBhcAaggKvOnxBcP/ZWuBDYCdwYThBYArw
CME9ZlcC9zWxLwZcC7wdfud6glmn+Xxz71o6x3kB+CXwIPAxMJhgtmtVTLOjzqkpfXfOtS8K/nvk
nHOurZD0CtDRzH7Q2n1xzrV9fs+cc861IknHEzxyZSHBZIkfAqPCn845l5KPzDnnXCuS1BV4leCh
w12Bz4GHwtUvnHMuJS/mnHPOOecymE+AcM4555zLYF7MOeecc85lMC/mnHPOOecymBdzzjnnnHMZ
zIs555xzzrkM5sWcc84551wG+3+SFi5K2+3VdQAAAABJRU5ErkJggg==
"
>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="Softmax-Regression-(Multinomial-Logistic-Regression)">Softmax Regression (Multinomial Logistic Regression)<a class="anchor-link" href="#Softmax-Regression-(Multinomial-Logistic-Regression)">&#182;</a></h3><ul>
<li><strong>Predicts one class at a time (multiclass, not multioutput). Use only for mutually exclusive classes.</strong></li>
<li>Scoring for K classes: <img src="softmax-score-for-class-k.png" alt="softmax-score-for-class K"></li>
<li>Softmax function (aka normalized exponential):    <img src="softmax-function.png" alt="softmax-function"></li>
<li>Prediction: <img src="softmax-prediction.png" alt="softmax prediction"></li>
<li>Uses <strong>cross entropy</strong> to minimize cost function. (Same as log loss, used for Logistic Regression, when k=2.)
<img src="cross-entropy-cost-function.png" alt="cross entropy"></li>
</ul>

</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[26]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># use Softmax to classify iris flowers</span>

<span class="n">X</span> <span class="o">=</span> <span class="n">iris</span><span class="p">[</span><span class="s2">&quot;data&quot;</span><span class="p">][:,</span> <span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">)]</span> <span class="c1"># petal length, width</span>
<span class="n">y</span> <span class="o">=</span> <span class="n">iris</span><span class="p">[</span><span class="s2">&quot;target&quot;</span><span class="p">]</span>

<span class="c1"># Scikit LR can be switched to Softmax with &quot;multinomial&quot; setting.</span>
<span class="c1"># also defaults to L2 regularization (control with C parameter)</span>

<span class="n">softmax_reg</span> <span class="o">=</span> <span class="n">LogisticRegression</span><span class="p">(</span><span class="n">multi_class</span><span class="o">=</span><span class="s2">&quot;multinomial&quot;</span><span class="p">,</span><span class="n">solver</span><span class="o">=</span><span class="s2">&quot;lbfgs&quot;</span><span class="p">,</span> <span class="n">C</span><span class="o">=</span><span class="mi">10</span><span class="p">)</span>
<span class="n">softmax_reg</span><span class="o">.</span><span class="n">fit</span><span class="p">(</span><span class="n">X</span><span class="p">,</span> <span class="n">y</span><span class="p">)</span>

<span class="c1"># predict iris 5cm long, 2cm wide:</span>

<span class="n">softmax_reg</span><span class="o">.</span><span class="n">predict</span><span class="p">([[</span><span class="mi">5</span><span class="p">,</span> <span class="mi">2</span><span class="p">]])</span>
<span class="n">softmax_reg</span><span class="o">.</span><span class="n">predict_proba</span><span class="p">([[</span><span class="mi">5</span><span class="p">,</span><span class="mi">2</span><span class="p">]])</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area"><div class="prompt output_prompt">Out[26]:</div>


<div class="output_text output_subarea output_execute_result">
<pre>array([[  6.33134078e-07,   5.75276067e-02,   9.42471760e-01]])</pre>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[27]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># softmax contour plot</span>

<span class="n">x0</span><span class="p">,</span> <span class="n">x1</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">meshgrid</span><span class="p">(</span>
        <span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">8</span><span class="p">,</span> <span class="mi">500</span><span class="p">)</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span>
        <span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mf">3.5</span><span class="p">,</span> <span class="mi">200</span><span class="p">)</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span>
    <span class="p">)</span>
<span class="n">X_new</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">c_</span><span class="p">[</span><span class="n">x0</span><span class="o">.</span><span class="n">ravel</span><span class="p">(),</span> <span class="n">x1</span><span class="o">.</span><span class="n">ravel</span><span class="p">()]</span>


<span class="n">y_proba</span> <span class="o">=</span> <span class="n">softmax_reg</span><span class="o">.</span><span class="n">predict_proba</span><span class="p">(</span><span class="n">X_new</span><span class="p">)</span>
<span class="n">y_predict</span> <span class="o">=</span> <span class="n">softmax_reg</span><span class="o">.</span><span class="n">predict</span><span class="p">(</span><span class="n">X_new</span><span class="p">)</span>

<span class="n">zz1</span> <span class="o">=</span> <span class="n">y_proba</span><span class="p">[:,</span> <span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="n">x0</span><span class="o">.</span><span class="n">shape</span><span class="p">)</span>
<span class="n">zz</span> <span class="o">=</span> <span class="n">y_predict</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="n">x0</span><span class="o">.</span><span class="n">shape</span><span class="p">)</span>

<span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">(</span><span class="n">figsize</span><span class="o">=</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="mi">4</span><span class="p">))</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">X</span><span class="p">[</span><span class="n">y</span><span class="o">==</span><span class="mi">2</span><span class="p">,</span> <span class="mi">0</span><span class="p">],</span> <span class="n">X</span><span class="p">[</span><span class="n">y</span><span class="o">==</span><span class="mi">2</span><span class="p">,</span> <span class="mi">1</span><span class="p">],</span> <span class="s2">&quot;g^&quot;</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s2">&quot;Iris-Virginica&quot;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">X</span><span class="p">[</span><span class="n">y</span><span class="o">==</span><span class="mi">1</span><span class="p">,</span> <span class="mi">0</span><span class="p">],</span> <span class="n">X</span><span class="p">[</span><span class="n">y</span><span class="o">==</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">],</span> <span class="s2">&quot;bs&quot;</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s2">&quot;Iris-Versicolor&quot;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">X</span><span class="p">[</span><span class="n">y</span><span class="o">==</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">],</span> <span class="n">X</span><span class="p">[</span><span class="n">y</span><span class="o">==</span><span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">],</span> <span class="s2">&quot;yo&quot;</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s2">&quot;Iris-Setosa&quot;</span><span class="p">)</span>

<span class="kn">from</span> <span class="nn">matplotlib.colors</span> <span class="k">import</span> <span class="n">ListedColormap</span>
<span class="n">custom_cmap</span> <span class="o">=</span> <span class="n">ListedColormap</span><span class="p">([</span><span class="s1">&#39;#fafab0&#39;</span><span class="p">,</span><span class="s1">&#39;#9898ff&#39;</span><span class="p">,</span><span class="s1">&#39;#a0faa0&#39;</span><span class="p">])</span>

<span class="n">plt</span><span class="o">.</span><span class="n">contourf</span><span class="p">(</span><span class="n">x0</span><span class="p">,</span> <span class="n">x1</span><span class="p">,</span> <span class="n">zz</span><span class="p">,</span> <span class="n">cmap</span><span class="o">=</span><span class="n">custom_cmap</span><span class="p">,</span> <span class="n">linewidth</span><span class="o">=</span><span class="mi">5</span><span class="p">)</span>
<span class="n">contour</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">contour</span><span class="p">(</span><span class="n">x0</span><span class="p">,</span> <span class="n">x1</span><span class="p">,</span> <span class="n">zz1</span><span class="p">,</span> <span class="n">cmap</span><span class="o">=</span><span class="n">plt</span><span class="o">.</span><span class="n">cm</span><span class="o">.</span><span class="n">brg</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">clabel</span><span class="p">(</span><span class="n">contour</span><span class="p">,</span> <span class="n">inline</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">12</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s2">&quot;Petal length&quot;</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">14</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s2">&quot;Petal width&quot;</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">14</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">legend</span><span class="p">(</span><span class="n">loc</span><span class="o">=</span><span class="s2">&quot;center left&quot;</span><span class="p">,</span> <span class="n">fontsize</span><span class="o">=</span><span class="mi">14</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">axis</span><span class="p">([</span><span class="mi">0</span><span class="p">,</span> <span class="mi">7</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mf">3.5</span><span class="p">])</span>
<span class="c1">#save_fig(&quot;softmax_regression_contour_plot&quot;)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
</pre></div>

</div>
</div>
</div>

<div class="output_wrapper">
<div class="output">


<div class="output_area"><div class="prompt"></div>


<div class="output_png output_subarea ">
<img src="
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
TkSuQmCC
"
>
</div>

</div>

</div>
</div>

</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[&nbsp;]:</div>
<div class="inner_cell">
    <div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span> 
</pre></div>

</div>
</div>
</div>

</div>
    </div>
  </div>
</body>
</html>
